{"id":25810,"date":"2021-06-04T12:03:00","date_gmt":"2021-06-04T09:03:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25810"},"modified":"2021-10-17T18:29:08","modified_gmt":"2021-10-17T15:29:08","slug":"kuidas-kasutada-guzzle-i-php-http-klienti-http-paringute-saatmiseks","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/et\/kuidas-kasutada-guzzle-i-php-http-klienti-http-paringute-saatmiseks\/","title":{"rendered":"Kuidas kasutada Guzzle&#8217;i &#8211; PHP HTTP-klienti HTTP-p\u00e4ringute saatmiseks"},"content":{"rendered":"<p>Arendaja leiab alati \u00fclesande, kus ta peab saatma HTTP-p\u00e4ringud teistele ressurssidele ja vastusega hakkama saama. Populaarne viis nende \u00fclesannete t\u00e4itmiseks on kasutada CURL-i. CURL-i kasutamine pole aga algajal suhteliselt lihtne. Ka skripti kirjutamiseks cURL-is peaks teie server olema lubanud laienduse cURL.<\/p>\n<p><a href=\"https:\/\/docs.guzzlephp.org\/en\/stable\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Guzzle<\/a> on alternatiiv CURL- <a href=\"https:\/\/docs.guzzlephp.org\/en\/stable\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ile<\/a>. See on PHP HTTP klient, mis h\u00f5lbustab HTTP-p\u00e4ringute saatmist ja on triviaalne integreerimine veebiteenustega. Isegi, v\u00f5in \u00f6elda oma kogemuste p\u00f5hjal, et Guzzle on parem kui CURL. See on lihtne ja h\u00f5lpsasti kasutatav. Kui kasutate Guzzle&#8217;i, ei pea te oma serveris olema CURL-laiendit. See annab teile koodi parema vormingu v\u00f5rreldes CURL-iga.<\/p>\n<p>Nagu \u00f6eldud, vaatame, kuidas Guzzle&#8217;i oma rakenduses kasutada.<\/p>\n<h3>Paigaldamine<\/h3>\n<p>Soovitatav viis Guzzle&#8217;i installimiseks on helilooja. Kui te pole Composerit oma s\u00fcsteemi installinud, saate selle <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">siit<\/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=\"Kuidas kasutada Guzzle&#039;i - PHP HTTP-klienti HTTP-p\u00e4ringute saatmiseks\" ><\/a><\/p>\n<p>Avage terminal oma projekti juurkataloogis ja k\u00e4ivitage Guzzle&#8217;i installimiseks j\u00e4rgmine k\u00e4sk.<\/p>\n<pre><code>composer require guzzlehttp\/guzzle<\/code><\/pre>\n<p>Guzzle toetab k\u00f5iki HTTP-p\u00e4ringuid, milleks on GET, DELETE, HEAD, OPTIONS, PATCH, POST ja PUT. Selles \u00f5petuses uurime, kuidas kasutada Guzzle&#8217;i HTTP-p\u00e4ringute saatmiseks ja kuidas sellega vastuseid k\u00e4sitleda.<\/p>\n<p>N\u00e4itena v\u00f5tan teenuse <a href=\"https:\/\/reqres.in\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">REQ | RES,<\/a> mis pakub HTTP-p\u00e4ringute testimiseks v\u00f5ltsitud reaalset API-d.<\/p>\n<h3>Kuidas saata HTTP-p\u00e4ringut Guzzle&#8217;i abil<\/h3>\n<p>Guzzle&#8217;i teegi installimisel peate oma faili lisama Guzzle&#8217;i keskkonna j\u00e4rgmiselt.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\nuse GuzzleHttpClient;<\/code><\/pre>\n<p>Proovime n\u00fc\u00fcd \u00fckshaaval m\u00f5nda toimingut, n\u00e4iteks GET, POST, File upload, faili kopeerimine kaug-URL-ist kohalikku kataloogi, PUT, PATCH ja DELETE.<\/p>\n<h4>GET Taotlege Guzzle&#8217;i abil<\/h4>\n<p>Kui vaatate veebisaiti REQ | RES, pakkusid nad GET-p\u00e4ringute jaoks paar l\u00f5pp-punkti. V\u00f5tan n\u00e4ite \u201eLOENDA KASUTAJAD&#8221; l\u00f5pp-punktist. Kasutajate loendi hankimiseks paluvad nad saata sellele l\u00f5pp-punktile GET-p\u00e4ringu <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>.<\/p>\n<p>Guzzlis saadame selle GET-p\u00e4ringu j\u00e4rgmiselt.<\/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>K\u00f5igepealt eraldasin &#8216;base_uri&#8217; (\u00fchise URL-i) <a href=\"https:\/\/reqres.in\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">aadressina https:\/\/reqres.in<\/a>. Siin on l\u00f5plik l\u00f5pp-punkt &#8216;\/ api \/ users&#8217; ja see n\u00f5uab &#8216;page&#8217; -na GET-parameetrit. Guzzle&#8217;is saate GET-parameetreid saata massiivi &#8216;query&#8217; abil, nagu on n\u00e4idatud \u00fclaltoodud koodis.<\/p>\n<h4>POSTI Taotlus Guzzle&#8217;i abil<\/h4>\n<p>Tavaliselt on POST-p\u00e4ringuid kahte t\u00fc\u00fcpi. V\u00f5imalik, et peate POST-i parameetrid saatma POST-taotlusena \u201eapplication \/ x-www-form-urlencoded&quot; v\u00f5i p\u00e4ringu kehana \u00fcles laadima JSON-i kodeeritud andmed. V\u00f5ite postitada JSON-i kodeeritud andmed, nagu allpool n\u00e4idatud.<\/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>POST-taotluse &#8216;application \/ x-www-form-urlencoded&#8217; korral saate parameetrid POSTIDA j\u00e4rgmiselt.<\/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>M\u00f5nel juhul paluvad API l\u00f5pp-punktid teil iga HTTP-p\u00e4ringu korral saata autoriseerimisluba. Kasutaja saab selle loa p\u00e4istena saata teie Guzzle&#8217;i taotluses.<\/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>Kopeerige fail kaugserverist Guzzle&#8217;i abil<\/h4>\n<p>Kui soovite kopeerida faili kaugserverist kohalikku kataloogi, on Guzzle parem valik. Oletame, et soovite selle pildi aadressil <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> kopeerida kui \u201eblog.jpg&#8221; oma kohalikku kataloogi. Kirjutame selle koodi, nagu allpool n\u00e4idatud.<\/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>Failide \u00fcleslaadimine Guzzle&#8217;i abil<\/h4>\n<p>Nagu me k\u00f5ik teame, peame failide \u00fcleslaadimiseks m\u00e4\u00e4rama p\u00e4ringu kehaks vormi \u201emitmeosaline \/ vorm-andmed&#8221;. Failide \u00fcleslaadimise p\u00f5hikood Guzzle&#8217;is kirjutatakse allpool.<\/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>Failide \u00fcleslaadimise demonstreerimiseks v\u00f5tan <a href=\"https:\/\/resmush.it\/api\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">reSmush.it API<\/a> reaalajas n\u00e4ite, mis saadab vastuseks pildi optimeeritud versiooni. Peate oma pildi postitama nende l\u00f5pp-punkti. Selle kood Guzzle&#8217;i abil j\u00e4rgmiselt.<\/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>Pane, plaaster ja kustuta Taotle Guzzle&#8217;i abil<\/h3>\n<p>Ressursside v\u00e4rskendamiseks kasutatakse PUT- ja PATCH-p\u00e4ringuid. Need 2 taotlust teevad aga teisiti.<\/p>\n<p>PUT kirjutab kogu \u00fcksuse \u00fcle, kui see juba olemas on, ja loob uue ressursi, kui seda pole. Kui soovite v\u00e4rskendada inimese nime, peate PUT-p\u00e4ringu esitamisel saatma kogu ressursi.<\/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>PATCH-taotlus rakendab ressursile osalise v\u00e4rskenduse. See t\u00e4hendab, et peate saatma ainult andmed, mida soovite v\u00e4rskendada, ja see ei m\u00f5juta ega muuda midagi muud. Nii et kui soovite v\u00e4rskendada inimese nime, peate saatma ainult nime parameetri.<\/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>Kustutamise taotlus on otse edasi saadetud. Peate lihtsalt tabama l\u00f5pp-punkti j\u00e4rgmiselt.<\/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>Loodan, et \u00f5ppisite tundma Guzzle&#8217;i ja selle kasutamise p\u00f5hit\u00f5desid. V\u00f5ite Guzzle Request Options&#8217;i kohta lugeda nende <a href=\"https:\/\/docs.guzzlephp.org\/en\/stable\/request-options.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">dokumentatsioonist<\/a>. Palun jagage oma m\u00f5tteid v\u00f5i ettepanekuid allpool olevas kommentaaride jaotises.<\/p>\n<h4>seotud artiklid<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/youtube-api-kuidas-saada-oma-kanali-youtube-i-videote-loendit\/\" title=\"YouTube API - kuidas saada kanali YouTube&#039;i videote loendit\">YouTube API &#8211; kuidas saada kanali YouTube&#8217;i videote loendit<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/tinypng-piltide-tihendamine-php-abil\/\" title=\"TinyPNG piltide tihendamine PHP abil\">TinyPNG piltide tihendamine PHP abil<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/html-vormi-valideerimine-peterselli-abil\/\" title=\"HTML-vormi valideerimine peterselli abil\">HTML-vormi valideerimine peterselli abil<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <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 pakub sujuvat viisi HTTP-p\u00e4ringu saatmiseks ja vastuse k\u00e4sitlemiseks. Selles artiklis uurime, kuidas saata HTTP-p\u00e4ringut ja -t\u00f6\u00f6d<\/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":[274],"tags":[842],"class_list":["post-25810","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-5","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/25810","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/comments?post=25810"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/25810\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media\/21661"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media?parent=25810"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/categories?post=25810"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/tags?post=25810"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}