{"id":25304,"date":"2021-06-04T12:04:00","date_gmt":"2021-06-04T09:04:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25304"},"modified":"2021-10-18T02:34:29","modified_gmt":"2021-10-17T23:34:29","slug":"so-verwenden-sie-guzzle-ein-php-http-client-zum-senden-von-http-anfragen","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/de\/so-verwenden-sie-guzzle-ein-php-http-client-zum-senden-von-http-anfragen\/","title":{"rendered":"So verwenden Sie Guzzle &#8211; Ein PHP-HTTP-Client zum Senden von HTTP-Anfragen"},"content":{"rendered":"<p>Der Entwickler st\u00f6\u00dft immer auf eine Aufgabe, bei der er HTTP-Anfragen an andere Ressourcen senden und die Antwort verarbeiten muss. Die g\u00e4ngige Methode zum Ausf\u00fchren dieser Aufgaben ist die Verwendung einer cURL. Die Verwendung der cURL ist f\u00fcr einen Anf\u00e4nger jedoch nicht relativ einfach. Um auch ein Skript in cURL zu schreiben, sollte Ihr Server die cURL-Erweiterung aktiviert haben.<\/p>\n<p><a href=\"https:\/\/docs.guzzlephp.org\/en\/stable\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Guzzle<\/a> ist eine Alternative zu cURL. Es ist ein PHP-HTTP-Client, der das Senden von HTTP-Anfragen vereinfacht und die Integration in Webdienste vereinfacht. Auch kann ich aus meiner Erfahrung sagen, dass Guzzle besser ist als cURL. Es ist einfach und leicht zu bedienen. Wenn Sie Guzzle verwenden, ben\u00f6tigen Sie keine cURL-Erweiterung auf Ihrem Server. Es bietet Ihnen eine bessere Formatierung des Codes im Vergleich zu cURL.<\/p>\n<p>Sehen wir uns jedoch an, wie Sie Guzzle in Ihrer Anwendung verwenden.<\/p>\n<h3>Installation<\/h3>\n<p>Die empfohlene Methode zur Installation von Guzzle ist \u00fcber den Composer. Wenn Sie Composer nicht auf Ihrem System installiert haben, k\u00f6nnen Sie ihn <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">hier herunterladen<\/a>.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20348-6081e2b54209f.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20348-6081e2b54209f.png\" alt=\"So verwenden Sie Guzzle - Ein PHP-HTTP-Client zum Senden von HTTP-Anfragen\" ><\/a><\/p>\n<p>\u00d6ffnen Sie das Terminal im Stammverzeichnis Ihres Projekts und f\u00fchren Sie den folgenden Befehl aus, um Guzzle zu installieren.<\/p>\n<pre><code>composer require guzzlehttp\/guzzle<\/code><\/pre>\n<p>Guzzle bietet Unterst\u00fctzung f\u00fcr alle HTTP-Anfragen, die GET, DELETE, HEAD, OPTIONS, PATCH, POST und PUT sind. In diesem Tutorial lernen wir, wie Sie Guzzle zum Senden von HTTP-Anfragen verwenden und damit Antworten verarbeiten.<\/p>\n<p>Als Beispiel nehme ich den <a href=\"https:\/\/reqres.in\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">REQ|RES-<\/a> Dienst, der eine gef\u00e4lschte echte API zum Testen von HTTP-Anfragen bereitstellt.<\/p>\n<h3>So senden Sie eine HTTP-Anfrage mit Guzzle<\/h3>\n<p>Bei der Installation der Guzzle-Bibliothek m\u00fcssen Sie wie folgt eine Guzzle-Umgebung in Ihre Datei aufnehmen.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\nuse GuzzleHttpClient;<\/code><\/pre>\n<p>Versuchen wir nun nacheinander einige Operationen wie GET, POST, Dateiupload, Datei von Remote-URL in ein lokales Verzeichnis kopieren, PUT, PATCH und DELETE.<\/p>\n<h4>GET-Anfrage mit Guzzle<\/h4>\n<p>Wenn Sie sich die REQ|RES-Website ansehen, wurden einige Endpunkte f\u00fcr &#8218;GET&#8216;-Anfragen bereitgestellt. Ich nehme das Beispiel des Endpunkts &#8218;LIST USERS&#8216;. Um die Benutzerliste abzurufen, bitten sie darum, eine GET-Anforderung an diesen Endpunkt <a href=\"https:\/\/reqres.in\/api\/users?page=2\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">https:\/\/reqres.in\/api\/users?page=2<\/a> zu senden .<\/p>\n<p>In Guzzle senden wir diese GET-Anfrage wie folgt.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\nuse GuzzleHttpClient;\n\u00a0\n$client = new Client([\n\u00a0\u00a0\u00a0\u00a0\/\/ Base URI is used with relative requests\n\u00a0\u00a0\u00a0\u00a0'base_uri' =&gt; 'https:\/\/reqres.in',\n]);\n\u00a0\u00a0\n$response = $client-&gt;request('GET', '\/api\/users', [\n\u00a0\u00a0\u00a0\u00a0'query' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'page' =&gt; '2',\n\u00a0\u00a0\u00a0\u00a0]\n]);\n\u00a0\n\/\/get status code using $response-&gt;getStatusCode();\n\u00a0\n$body = $response-&gt;getBody();\n$arr_body = json_decode($body);\nprint_r($arr_body);<\/code><\/pre>\n<p>Zuerst habe ich eine &#8218;base_uri&#8216; (gemeinsame URL) als <a href=\"https:\/\/reqres.in\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">https:\/\/reqres.in<\/a> extrahiert. Hier ist der letzte Endpunkt &#8218;\/api\/users&#8216; und erfordert einen GET-Parameter als &#8218;page&#8216;. In Guzzle k\u00f6nnen Sie GET-Parameter mit dem &#8218;query&#8216;-Array senden, wie im obigen Code gezeigt.<\/p>\n<h4>POST-Anfrage mit Guzzle<\/h4>\n<p>Normalerweise gibt es 2 Arten von POST-Anfragen. M\u00f6glicherweise m\u00fcssen Sie Parameter als POST-Anfrage \u201eapplication\/x-www-form-urlencoded&#8220; POST oder JSON-codierte Daten als Hauptteil der Anfrage hochladen. Sie k\u00f6nnen JSON-codierte Daten wie unten gezeigt posten.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\nuse GuzzleHttpClient;\n\u00a0\n$client = new Client([\n\u00a0\u00a0\u00a0\u00a0\/\/ Base URI is used with relative requests\n\u00a0\u00a0\u00a0\u00a0'base_uri' =&gt; 'https:\/\/reqres.in',\n]);\n\u00a0\n$response = $client-&gt;request('POST', '\/api\/users', [\n\u00a0\u00a0\u00a0\u00a0'json' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'name' =&gt; 'Sam',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'job' =&gt; 'Developer'\n\u00a0\u00a0\u00a0\u00a0]\n]);\n\u00a0\n\/\/get status code using $response-&gt;getStatusCode();\n\u00a0\n$body = $response-&gt;getBody();\n$arr_body = json_decode($body);\nprint_r($arr_body);<\/code><\/pre>\n<p>Im Fall der POST-Anfrage &#8218;application\/x-www-form-urlencoded&#8216; k\u00f6nnen Sie die Parameter wie folgt POST-Parameter eingeben.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\nuse GuzzleHttpClient;\n\u00a0\n$client = new Client([\n\u00a0\u00a0\u00a0\u00a0\/\/ Base URI is used with relative requests\n\u00a0\u00a0\u00a0\u00a0'base_uri' =&gt; 'BASE_URL_ENDPOINT',\n]);\n\u00a0\n$client-&gt;request('POST', '\/endpoint_here', [\n\u00a0\u00a0\u00a0'form_params' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'foo' =&gt; 'bar',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'baz' =&gt; ['hi', 'there!']\n\u00a0\u00a0\u00a0]\n]);<\/code><\/pre>\n<p>In einigen F\u00e4llen werden Sie von API-Endpunkten aufgefordert, in jeder HTTP-Anforderung ein Autorisierungstoken zu senden. Der Benutzer kann dieses Token als Header in Ihrer Guzzle-Anfrage senden.<\/p>\n<pre><code>&lt;?php\n$client-&gt;request('POST', '\/endpoint_here', [\n\u00a0\u00a0\u00a0\u00a0\"headers\" =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"Authorization\" =&gt; \"Bearer TOKEN_VALUE\"\n\u00a0\u00a0\u00a0\u00a0],\n\u00a0\u00a0\u00a0\u00a0'form_params' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'foo' =&gt; 'bar',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'baz' =&gt; ['hi', 'there!']\n\u00a0\u00a0\u00a0\u00a0]\n]);<\/code><\/pre>\n<h4>Kopieren Sie eine Datei vom Remote-Server mit Guzzle<\/h4>\n<p>Wenn Sie eine Datei von einem Remote-Server in Ihr lokales Verzeichnis kopieren m\u00f6chten, ist Guzzle eine bessere Option. Angenommen, Sie m\u00f6chten dieses Bild unter <a href=\"https:\/\/artisansweb.net\/wp-content\/uploads\/2020\/03\/blog.jpg\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">https:\/\/artisansweb.net\/wp-content\/uploads\/2020\/03\/blog.jpg<\/a> als &#8218;blog.jpg&#8216; in Ihr lokales Verzeichnis kopieren. Wir werden den Code daf\u00fcr wie unten gezeigt schreiben.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\nuse GuzzleHttpClient;\n\u00a0\n$fp = fopen('blog.jpg', 'wb');\n\u00a0\n$client = new GuzzleHttpClient();\n$request = $client-&gt;get('https:\/\/artisansweb.net\/wp-content\/uploads\/2020\/03\/blog.jpg', ['sink' =&gt; $fp]);\n\u00a0\nfclose($fp);<\/code><\/pre>\n<h4>Datei-Upload mit Guzzle<\/h4>\n<p>Wie wir alle wissen, m\u00fcssen wir zum Hochladen von Dateien den Hauptteil der Anfrage auf ein &#8218;multipart\/form-data&#8216;-Formular setzen. Der grundlegende Code in Guzzle zum Hochladen von Dateien w\u00fcrde wie folgt aussehen.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\nuse GuzzleHttpClient;\n\u00a0\n$client = new Client([\n\u00a0\u00a0\u00a0\u00a0\/\/ Base URI is used with relative requests\n\u00a0\u00a0\u00a0\u00a0'base_uri' =&gt; 'BASE_URL_HERE',\n]);\n\u00a0\n$client-&gt;request('POST', '\/endpoint_here', [\n\u00a0\u00a0\u00a0\u00a0'multipart' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'name'\u00a0\u00a0\u00a0\u00a0 =&gt; 'files', \/\/ name value requires by endpoint\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'contents' =&gt; fopen('\/path\/to\/file', 'r'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'filename' =&gt; 'custom_image.jpg'\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\n\u00a0\u00a0\u00a0\u00a0]\n]);<\/code><\/pre>\n<p>Um das Hochladen der Datei zu demonstrieren, nehme ich ein Live-Beispiel der <a href=\"https:\/\/resmush.it\/api\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">reSmush.it-API,<\/a> die als Antwort eine optimierte Version des Bildes sendet. Sie m\u00fcssen Ihr Image an ihren Endpunkt POST. Der Code daf\u00fcr mit Guzzle wie folgt.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\nuse GuzzleHttpClient;\n\u00a0\ntry {\n\u00a0\u00a0\u00a0\u00a0$client = new Client([\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Base URI is used with relative requests\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'base_uri' =&gt; 'http:\/\/api.resmush.it',\n\u00a0\u00a0\u00a0\u00a0]);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$response = $client-&gt;request('POST', \"?qlty=92\", [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'multipart' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'name'\u00a0\u00a0\u00a0\u00a0 =&gt; 'files', \/\/ name value requires by endpoint\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'contents' =&gt; fopen(getcwd().'\/blog.jpg', 'r'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'filename' =&gt; 'blog.jpg',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'headers'\u00a0 =&gt; array('Content-Type' =&gt; mime_content_type(getcwd().'\/blog.jpg'))\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0]\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0]\n\u00a0\u00a0\u00a0\u00a0]);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0if (200 == $response-&gt;getStatusCode()) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$response = $response-&gt;getBody();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$arr_result = json_decode($response);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0print_r($arr_result);\n\u00a0\u00a0\u00a0\u00a0}\n} catch (Exception $e) {\n\u00a0\u00a0\u00a0\u00a0echo $e-&gt;getMessage();\n}<\/code><\/pre>\n<h3>PUT-, PATCH- und DELETE-Anfrage mit Guzzle<\/h3>\n<p>Die PUT- und PATCH-Anforderungen werden verwendet, um die Ressourcen zu aktualisieren. Diese 2 Anfragen machen es jedoch anders.<\/p>\n<p>PUT \u00fcberschreibt die gesamte Entit\u00e4t, wenn sie bereits vorhanden ist, und erstellt eine neue Ressource, wenn sie nicht vorhanden ist. Wenn Sie den Namen einer Person aktualisieren m\u00f6chten, m\u00fcssen Sie bei einer PUT-Anfrage die gesamte Ressource senden.<\/p>\n<pre><code>&lt;?php\n&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\nuse GuzzleHttpClient;\n\u00a0\u00a0\n$client = new Client([\n\u00a0\u00a0\u00a0\u00a0\/\/ Base URI is used with relative requests\n\u00a0\u00a0\u00a0\u00a0'base_uri' =&gt; 'https:\/\/reqres.in',\n]);\n\u00a0\u00a0\n$response = $client-&gt;request('PUT', '\/api\/users\/2', [\n\u00a0\u00a0\u00a0\u00a0'json' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'name' =&gt; 'Sam',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'job' =&gt; 'Developer'\n\u00a0\u00a0\u00a0\u00a0]\n]);\n\u00a0\u00a0\n\/\/get status code using $response-&gt;getStatusCode();\n\u00a0\n$body = $response-&gt;getBody();\n$arr_body = json_decode($body);\nprint_r($arr_body);<\/code><\/pre>\n<p>Die PATCH-Anforderung wendet eine Teilaktualisierung auf die Ressource an. Das bedeutet, dass Sie nur die Daten senden m\u00fcssen, die Sie aktualisieren m\u00f6chten, und dies beeinflusst oder \u00e4ndert nichts anderes. Wenn Sie also den Namen einer Person aktualisieren m\u00f6chten, m\u00fcssen Sie nur den Namensparameter senden.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\nuse GuzzleHttpClient;\n\u00a0\u00a0\n$client = new Client([\n\u00a0\u00a0\u00a0\u00a0\/\/ Base URI is used with relative requests\n\u00a0\u00a0\u00a0\u00a0'base_uri' =&gt; 'https:\/\/reqres.in',\n]);\n\u00a0\u00a0\n$response = $client-&gt;request('PATCH', '\/api\/users\/2', [\n\u00a0\u00a0\u00a0\u00a0'json' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'name' =&gt; 'Sam',\n\u00a0\u00a0\u00a0\u00a0]\n]);\n\u00a0\u00a0\n\/\/get status code using $response-&gt;getStatusCode();\n\u00a0\n$body = $response-&gt;getBody();\n$arr_body = json_decode($body);\nprint_r($arr_body);<\/code><\/pre>\n<p>Eine DELETE-Anfrage ist unkompliziert. Sie m\u00fcssen nur den Endpunkt wie folgt erreichen.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\nuse GuzzleHttpClient;\n\u00a0\u00a0\n$client = new Client([\n\u00a0\u00a0\u00a0\u00a0\/\/ Base URI is used with relative requests\n\u00a0\u00a0\u00a0\u00a0'base_uri' =&gt; 'https:\/\/reqres.in',\n]);\n\u00a0\u00a0\n$response = $client-&gt;request('DELETE', '\/api\/users\/2');\n\u00a0\u00a0\necho $response-&gt;getStatusCode(); \/\/should gives 204<\/code><\/pre>\n<p>Ich hoffe, Sie haben Guzzle und die Grundlagen seiner Verwendung kennengelernt. Weitere Informationen zu Guzzle-Request-Optionen finden Sie in der <a href=\"https:\/\/docs.guzzlephp.org\/en\/stable\/request-options.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Dokumentation<\/a>. Bitte teilen Sie Ihre Gedanken oder Vorschl\u00e4ge im Kommentarbereich unten mit.<\/p>\n<h4>Zum Thema passende Artikel<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/youtube-api-so-erhalten-sie-eine-liste-der-youtube-videos-ihres-kanals\/\" title=\"YouTube API \u2013 So erhalten Sie eine Liste der YouTube-Videos Ihres Kanals\">YouTube API \u2013 So erhalten Sie eine Liste der YouTube-Videos Ihres Kanals<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/tinypng-bilder-mit-php-komprimieren\/\" title=\"TinyPNG Bilder mit PHP komprimieren\">TinyPNG Bilder mit PHP komprimieren<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/html-formularvalidierung-mit-petersilie\/\" title=\"HTML-Formularvalidierung mit Petersilie\">HTML-Formularvalidierung mit Petersilie<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Aufnahmequelle:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Guzzle bietet eine nahtlose M\u00f6glichkeit, HTTP-Anforderungen zu senden und die Antwort zu verarbeiten. In diesem Artikel untersuchen wir, wie HTTP-Anfragen gesendet und behandelt werden<\/p>\n","protected":false},"author":1,"featured_media":21661,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[272],"tags":[845],"class_list":["post-25304","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-3","tag-affiai-de"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/25304","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/comments?post=25304"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/25304\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media\/21661"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media?parent=25304"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/categories?post=25304"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/tags?post=25304"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}