{"id":74793,"date":"2020-03-20T20:42:19","date_gmt":"2020-03-20T17:42:19","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/quarkus-sverhzvukovaya-subatomnaya-java-kratkij-obzor-frejmvorka"},"modified":"2020-03-20T20:42:19","modified_gmt":"2020-03-20T17:42:19","slug":"quarkus-sverhzvukovaya-subatomnaya-java-kratkij-obzor-frejmvorka","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/quarkus-sverhzvukovaya-subatomnaya-java-kratkij-obzor-frejmvorka","title":{"rendered":"Quarkus \u2014 \u00dcberschall-Subatomare Java. Eine kurze \u00dcbersicht \u00fcber das Framework","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Quarkus \u2014 \u00dcberschall-Subatomare Java. Eine kurze \u00dcbersicht \u00fcber das Framework\" src=\"\/wp-content\/uploads\/2020\/03\/b40e193b4a696206aad8b08a5e4795a1.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h3 id=\"vvedenie\">Einf\u00fchrung<\/h3>\n<p><\/p>\n<p>Am siebten M\u00e4rz wird die Firma RedHat (bald IBM) <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/blog\/2019\/03\/07\/quarkus-next-generation-kubernetes-native-java-framework\/\">hat<\/a><\/noindex> ein neues Framework \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/quarkus.io\/\">unterst\u00fctzt Quarkus die Verwendung des Advanced Message Queuing Protocol (<\/a><\/noindex>. Laut den Entwicklern basiert dieses Framework auf GraalVM und OpenJDK HotSpot und ist f\u00fcr Kubernetes gedacht. Der Quarkus-Stack umfasst: JPA\/Hibernate, JAX-RS\/RESTEasy, Eclipse Vert.x, Netty, Apache Camel, Kafka, Prometheus und andere.<\/p>\n<p><\/p>\n<p>Das Ziel der Entwicklung ist es, Java zur f\u00fchrenden Plattform f\u00fcr die Bereitstellung in Kubernetes und die Entwicklung serverloser Anwendungen zu machen, indem den Entwicklern ein einheitlicher Ansatz f\u00fcr die Entwicklung sowohl im reaktiven als auch im imperativen Stil geboten wird.<\/p>\n<p><\/p>\n<p>Wenn man sich die <noindex><a rel=\"nofollow\" href=\"https:\/\/dzone.com\/articles\/classification-of-development-frameworks-for-enter\"><u>Maschine verwendet.<\/u><\/a><\/noindex> Wenn man Frameworks klassifiziert, liegt Quarkus irgendwo zwischen \u201eAggregatoren \/ Code-Generatoren\u201c und \u201eHigh-Level-Fullstack-Frameworks\u201c. Es ist bereits mehr als ein Aggregator, kommt aber nicht ganz an ein Full-Stack-Framework heran, da es auf die Backend-Entwicklung ausgerichtet ist.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Es wird eine sehr hohe Geschwindigkeit beim Start der Anwendung und ein geringer Speicherverbrauch versprochen. Hier sind die Daten von der Website des Entwicklers:<\/p>\n<p><\/p>\n<p>Zeit vom Start bis zur ersten Antwort (s):<\/p>\n<p><\/p>\n<p>Konfiguration<br \/>\nREST<br \/>\nREST+JPA<\/p>\n<p>Quarkus+GraalVM<br \/>\n0.014<br \/>\n0.055<\/p>\n<p>Quarkus+OpenJDK<br \/>\n0.75<br \/>\n2.5<\/p>\n<p>Traditioneller Cloud-Native-Stack*<br \/>\n4.3<br \/>\n9.5<\/p>\n<p><\/p>\n<p>Speicherverbrauch (Mb):<\/p>\n<p><\/p>\n<p>Konfiguration<br \/>\nREST<br \/>\nREST+JPA<\/p>\n<p>Quarkus+GraalVM<br \/>\n13<br \/>\n35<\/p>\n<p>Quarkus+OpenJDK<br \/>\n74<br \/>\n130<\/p>\n<p>Traditioneller Cloud-Native-Stack*<br \/>\n140<br \/>\n218<\/p>\n<p><\/p>\n<p>Beeindruckend, nicht wahr?<\/p>\n<p><\/p>\n<p>*<em>Informationen zu diesem Technologiestack habe ich nicht gefunden, man kann vermuten, dass es sich um eine Art Spring Boot mit zus\u00e4tzlicher Ausr\u00fcstung handelt.<\/em>.<\/p>\n<p><\/p>\n<h3 id=\"hello-world\">4) Wechseln Sie in das Verzeichnis, in das Sie das Beispielprojekt heruntergeladen haben:<\/h3>\n<p><\/p>\n<p>Das einfachste auf Quarkus geschriebene Programm w\u00fcrde so aussehen:<\/p>\n<p><\/p>\n<pre><code class=\"java\">@Path(\"\/hello\")\npublic class GreetingResource {\n\n   @GET\n   @Produces(MediaType.TEXT_PLAIN)\n   public String hello() {\n       return \"hello\";\n   }\n}<\/code><\/pre>\n<p><\/p>\n<p>Das ist buchst\u00e4blich eine Klasse und das reicht aus! Die Anwendung kann mit Maven im Entwicklungsmodus gestartet werden:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">mvn compile quarkus:dev\n\u2026\n$ curl http:\/\/localhost:8080\/hello\nhello<\/code><\/pre>\n<p><\/p>\n<p>Der Unterschied zu einer \u00fcblichen Anwendung ist \u2014 es gibt keine Klasse Application! Quarkus unterst\u00fctzt Hot Reload, sodass man die Anwendung \u00e4ndern kann, ohne sie neu zu starten, was die Entwicklung noch schneller macht. <\/p>\n<p><\/p>\n<p>Was kommt als N\u00e4chstes? Man kann einen Dienst im Controller mit der Annotation hinzuf\u00fcgen <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/inject\/\" class=\"user_link\">Inject<\/a><\/noindex>. Der Dienstcode:<\/p>\n<p><\/p>\n<pre><code class=\"java\">@ApplicationScoped\npublic class GreetingService {\n\n   public String greeting(String name) {\n       return \"Hallo \" + name + \"!\";\n   }\n}<\/code><\/pre>\n<p><\/p>\n<p>Controller:<\/p>\n<p><\/p>\n<pre><code class=\"java\">@Path(\"\/hello\")\npublic class GreetingResource {\n\n   @Inject\n   GreetingService service;\n\n   @GET\n   @Produces(MediaType.TEXT_PLAIN)\n   @Path(\"\/{name}\")\n   public String greeting(@PathParam(\"name\") String name) {\n       return service.greeting(name);\n   }\n}<\/code><\/pre>\n<p><\/p>\n<pre><code class=\"plaintext\">$ curl http:\/\/localhost:8080\/hello\/developer\nHallo Entwickler!<\/code><\/pre>\n<p><\/p>\n<p>Beachten Sie, dass in Quarkus die Standardannotation aus den vertrauten Frameworks \u2014 CDI und JAX-RS \u2014 verwendet werden. Es ist nichts Neues zu lernen, wenn Sie zuvor mit CDI und JAX-RS gearbeitet haben. <\/p>\n<p><\/p>\n<h3 id=\"rabota-s-bazoy-dannyh\">Arbeiten mit der Datenbank<\/h3>\n<p><\/p>\n<p>Hibernate und standardm\u00e4\u00dfige JPA-Annotationen f\u00fcr Entit\u00e4ten werden verwendet. Wie bei REST-Controllern muss nur wenig Code geschrieben werden. Es reicht aus, die Abh\u00e4ngigkeiten in der Build-Datei anzugeben und die Annotationen zu setzen. <code>@Entity<\/code> und die Datenquelle in der application.properties zu konfigurieren. <\/p>\n<p><\/p>\n<p>Das war's. Keine sessionFactory, persistence.xml und andere Service-Dateien. Wir schreiben nur den Code, der ben\u00f6tigt wird. Bei Bedarf kann jedoch eine persistence.xml-Datei erstellt werden, um die ORM-Schicht feiner zu konfigurieren. <\/p>\n<p><\/p>\n<p>Quarkus unterst\u00fctzt das Caching von Entit\u00e4ten, Sammlungen f\u00fcr Eins-zu-viele-Beziehungen sowie Abfragen. Auf den ersten Blick sieht das gro\u00dfartig aus, aber es ist <em>lokales<\/em> Caching f\u00fcr einen einzelnen Kubernetes-Knoten. Das bedeutet, dass die Caches verschiedener Knoten nicht untereinander synchronisiert sind. Ich hoffe, das ist nur vor\u00fcbergehend. <\/p>\n<p><\/p>\n<h3 id=\"asinhronnoe-vypolnenie-koda\">Asynchrone Codeausf\u00fchrung<\/h3>\n<p><\/p>\n<p>Wie bereits erw\u00e4hnt, unterst\u00fctzt Quarkus auch den reaktiven Programmierstil. Der Code der vorherigen Anwendung kann in anderer Form geschrieben werden.<\/p>\n<p><\/p>\n<pre><code class=\"java\">@Path(\"\/hello\")\npublic class GreetingResource {\n\n   @GET\n   @Produces(MediaType.TEXT_PLAIN)\n   @Path(\"\/{name}\")\n   public CompletionStage greeting(@PathParam(\"name\") String name) {\n       return CompletableFuture.supplyAsync(() -&gt; {\n           return \"Hallo \" + name + \"!\";\n       });\n   }\n}<\/code><\/pre>\n<p><\/p>\n<p>Asynchroner Code kann auch in einen Service verschoben werden, das Ergebnis bleibt dasselbe. <\/p>\n<p><\/p>\n<h3 id=\"testirovanie\">Tests<\/h3>\n<p><\/p>\n<p>Tests f\u00fcr Quarkus-Anwendungen k\u00f6nnen mit JUnit4 oder JUnit5 geschrieben werden. Im Folgenden ist ein Beispieltest f\u00fcr den Endpoint, der mit RestAssured geschrieben wurde, aber auch ein anderer Rahmen kann verwendet werden: <\/p>\n<p><\/p>\n<pre><code class=\"java\">@QuarkusTest\npublic class GreetingResourceTest {\n\n   @Test\n   public void testGreetingEndpoint() {\n       String uuid = UUID.randomUUID().toString();\n       given()\n         .pathParam(\"name\", uuid)\n         .when().get(\"\/hello\/{name}\")\n         .then()\n           .statusCode(200)\n           .body(is(\"Hallo \" + uuid + \"!\"));\n   }\n}<\/code><\/pre>\n<p><\/p>\n<p>Die Annotation @QuarkusTest weist an, die Anwendung zu starten, bevor die Tests ausgef\u00fchrt werden. Ansonsten ist der Code bekannt und vertraut f\u00fcr alle Entwickler. <\/p>\n<p><\/p>\n<h3 id=\"platformo-zavisimoe-prilozhenie\">Plattformabh\u00e4ngige Anwendung<\/h3>\n<p><\/p>\n<p>Da Quarkus eng mit GraalVM integriert ist, kann nat\u00fcrlich plattformabh\u00e4ngiger Code generiert werden. Dazu muss GraalVM installiert und die Umgebungsvariable GRAALVM_HOME gesetzt werden. Dann <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/quarkusio\/quarkus-quickstarts\/blob\/fae88eaab10ed4d68ac44e0b8b7416e631b8a6f9\/getting-started-knative\/pom.xml#L105\">muss ein Build-Profil angegeben werden<\/a><\/noindex> und bei der Erstellung der Anwendung angegeben werden:<\/p>\n<p><\/p>\n<pre><code class=\"java\">mvn package -Pnative<\/code><\/pre>\n<p><\/p>\n<p>Interessanterweise kann die generierte Anwendung getestet werden. Das ist wichtig, da die Ausf\u00fchrung von \u201enativem\u201c Code von der Ausf\u00fchrung auf der JVM abweichen kann. Die Annotation @SubstrateTest f\u00fchrt plattformabh\u00e4ngigen Code der Anwendung aus. Die Wiederverwendung bestehenden Testcodes kann durch Vererbung erfolgen, sodass der Code zum Testen einer plattformabh\u00e4ngigen Anwendung so aussieht:<\/p>\n<p><\/p>\n<pre><code class=\"java\">@SubstrateTest\npublic class GreetingResourceIT extends GreetingResourceTest {\n\n}<\/code><\/pre>\n<p><\/p>\n<p>Das generierte Bild kann in Docker verpackt und in Kubernetes oder OpenShift ausgef\u00fchrt werden, was detailliert beschrieben ist in <noindex><a rel=\"nofollow\" href=\"https:\/\/quarkus.io\/guides\/kubernetes-guide\">Anleitung<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"instrumentariy\">Werkzeug<\/h3>\n<p><\/p>\n<p>Das Framework Quarkus kann mit Maven und Gradle verwendet werden. Maven wird vollst\u00e4ndig unterst\u00fctzt, im Gegensatz zu Gradle. Leider unterst\u00fctzt Gradle derzeit nicht die Erstellung eines leeren Projekts, es gibt auf der Website detaillierte <noindex><a rel=\"nofollow\" href=\"https:\/\/quarkus.io\/guides\/gradle-tooling.html\">Lehrbuch<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"rasshireniya\">Erweiterungen<\/h3>\n<p><\/p>\n<p>Quarkus ist ein erweiterbares Framework. Momentan gibt es etwa <noindex><a rel=\"nofollow\" href=\"https:\/\/quarkus.io\/extensions\/\">40 Erweiterungen<\/a><\/noindex>, die verschiedene Funktionalit\u00e4ten hinzuf\u00fcgen \u2013 von der Unterst\u00fctzung von <noindex><a rel=\"nofollow\" href=\"https:\/\/quarkus.io\/extensions\/#migration\">Spring DI-Container<\/a><\/noindex> und <noindex><a rel=\"nofollow\" href=\"https:\/\/quarkus.io\/extensions\/#integration\">Apache Camel<\/a><\/noindex> bis hin zu Logging und der Ver\u00f6ffentlichung von Metriken f\u00fcr laufende Dienste. Au\u00dferdem gibt es bereits eine Erweiterung zur Unterst\u00fctzung der Anwendungsentwicklung in Kotlin, zus\u00e4tzlich zu Java. <\/p>\n<p><\/p>\n<h2 id=\"zaklyuchenie\">Fazit<\/h2>\n<p><\/p>\n<p>Meiner Meinung nach ist Quarkus durchaus im Trend. Die Entwicklung von Backend-Code wird immer einfacher, und dieses Framework vereinfacht und beschleunigt die Entwicklung von Diensten noch weiter, indem es native Unterst\u00fctzung f\u00fcr Docker und Kubernetes hinzuf\u00fcgt. Ein gro\u00dfer Vorteil ist die eingebaute Unterst\u00fctzung von GraalVM und die Erstellung plattformabh\u00e4ngiger Bilder, was es erm\u00f6glicht, Dienste wirklich schnell startf\u00e4hig und speichersparend zu machen. Das ist in der heutigen Zeit, in der Mikroservices und serverlose Architekturen im Trend liegen, sehr wichtig.<\/p>\n<p><\/p>\n<p>Die offizielle Website ist \u2013 <noindex><a rel=\"nofollow\" href=\"https:\/\/quarkus.io\/\">quarkus.io<\/a><\/noindex>. Beispiele f\u00fcr Projekte zum schnellen Start sind bereits auf <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/quarkusio\/quarkus-quickstarts\">GitHub<\/a><\/noindex>.\n<\/p>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/haulmont\/blog\/443242\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0421\u0435\u0434\u044c\u043c\u043e\u0433\u043e \u043c\u0430\u0440\u0442\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f RedHat (\u0432\u0441\u043a\u043e\u0440\u0435 \u2014 IBM) \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0430 \u043d\u043e\u0432\u044b\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u2014 Quarkus. \u041f\u043e \u0441\u043b\u043e\u0432\u0430\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u044d\u0442\u043e\u0442 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0431\u0430\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 GraalVM \u0438 OpenJDK HotSpot \u0438 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f Kubernetes. \u0421\u0442\u0435\u043a Quarkus \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f: JPA\/Hibernate, JAX-RS\/RESTEasy, Eclipse Vert.x, Netty, Apache Camel, Kafka, Prometheus \u0438 \u0434\u0440\u0443\u0433\u0438\u0435. \u0426\u0435\u043b\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u2014 \u0441\u0434\u0435\u043b\u0430\u0442\u044c Java \u043b\u0438\u0434\u0438\u0440\u0443\u044e\u0449\u0435\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0439 \u0434\u043b\u044f \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0432 Kubernetes [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":74794,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-74793","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/quarkus-sverhzvukovaya-subatomnaya-java-kratkij-obzor-frejmvorka\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Quarkus \u2014 \u0441\u0432\u0435\u0440\u0445\u0437\u0432\u0443\u043a\u043e\u0432\u0430\u044f \u0441\u0443\u0431\u0430\u0442\u043e\u043c\u043d\u0430\u044f Java. \u041a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/quarkus-sverhzvukovaya-subatomnaya-java-kratkij-obzor-frejmvorka\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-03-20T17:42:19+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-20T17:42:19+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Quarkus \u2013 \u00dcberlichtsupersubatomare Java. Kurze \u00dcbersicht \u00fcber das Framework | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/quarkus-sverhzvukovaya-subatomnaya-java-kratkij-obzor-frejmvorka","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Quarkus \u2014 \u0441\u0432\u0435\u0440\u0445\u0437\u0432\u0443\u043a\u043e\u0432\u0430\u044f \u0441\u0443\u0431\u0430\u0442\u043e\u043c\u043d\u0430\u044f Java. \u041a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 | ProHoster","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/quarkus-sverhzvukovaya-subatomnaya-java-kratkij-obzor-frejmvorka","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-03-20T17:42:19+00:00","article:modified_time":"2020-03-20T17:42:19+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"74793","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 18:07:28","updated":"2022-09-30 18:17:47","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/74793","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=74793"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/74793\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/74794"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=74793"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=74793"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=74793"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}