{"id":42248,"date":"2020-12-15T00:09:45","date_gmt":"2020-12-15T08:09:45","guid":{"rendered":"https:\/\/kinsta.com\/?p=4181"},"modified":"2023-02-03T13:04:58","modified_gmt":"2023-02-03T12:04:58","slug":"api-http-wordpress","status":"publish","type":"post","link":"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/","title":{"rendered":"Usare l&#8217;API HTTP di WordPress"},"content":{"rendered":"<p><a href=\"https:\/\/codex.wordpress.org\/HTTP_API\">L&#8217;HTTP API<\/a> di WordPress consiste in una serie di funzioni che permettono di fare chiamate HTTP molto pi\u00f9 facilmente. Non c&#8217;\u00e8 pi\u00f9 bisogno di armeggiare con file_get_contents o cURL, perch\u00e9 l&#8217;API offre una singola interfaccia unificata. Questo \u00e8 ottimo per interagire con le API di terze parti, specialmente quelle REST-ful come Twitter, Facebook, MailChimp e altre.<\/p>\n<ul>\n<li><a href=\"#basics-of-http\">Le basi di HTTP<\/a><\/li>\n<li><a href=\"#restful-apis\">Informazioni sulle API Restful<\/a><\/li>\n<li><a href=\"#wordpress-http-api\">Usare l&#8217;API HTTP di WordPress<\/a><\/li>\n<\/ul>\n<h2 id=\"basics-of-http\">Le Basi di HTTP<\/h2>\n<p>Abbiamo gi\u00e0 visto tutti HTTP in azione. Infatti, se questa fosse per voi la prima volta in assoluto sul web e questa la prima cosa che state leggendo, avete gi\u00e0 visto l&#8217;HTTP fare la sua magia. L&#8217;HTTP \u00e8 un protocollo di rete utilizzato per fornire tutti i file e i dati (risorse) attraverso l&#8217;Interweb.<\/p>\n<p>Ci sono fondamentalmente due parti dell&#8217;equazione: la <strong>richiesta HTTP<\/strong> e la <strong>risposta HTTP<\/strong>, o transazione. Sia la richiesta che la risposta sono molto simili nella struttura, entrambe sono composte da quattro parti:<\/p>\n<ul>\n<li>Una linea iniziale<\/li>\n<li>Zero o pi\u00f9 linee di intestazione<\/li>\n<li>Una linea vuota<\/li>\n<li>Un body di contenuto opzionale<\/li>\n<\/ul>\n<h3>La Linea Iniziale<\/h3>\n<p>Le richieste utilizzano la riga iniziale per inviare tre informazioni: il nome del metodo, il percorso e la versione HTTP. Per esempio, visualizzando la pagina principale del blog di Kinsta, dovreste vedere questo nella riga iniziale della richiesta.<\/p>\n<pre><code class=\"language-bash\">GET \/blog\/ HTTP\/1.1<\/code><\/pre>\n<p>Le risposte forniscono anche tre informazioni, anche se in qualche modo diverse: La versione HTTP, il codice di risposta e una descrizione della risposta. Quando si fa una richiesta al blog principale di Kinsta, questo invia una risposta HTTP con la seguente riga iniziale:<\/p>\n<pre><code class=\"language-bash\">HTTP\/1.0 200 OK<\/code><\/pre>\n<h3>Header<\/h3>\n<p>Gli header contengono varie informazioni sulla richiesta o sulla risposta. HTTP 1.1 definisce 46 tipi di intestazioni, ma solo una \u00e8 richiesta (solo per le richieste), l&#8217;intestazione &#8220;Host&#8221;. Date un&#8217;occhiata allo screenshot dei miei developer tools di Chrome che mostra alcune delle intestazioni inviate al blog principale di Kinsta insieme ad una richiesta:<\/p>\n<p><a href=\"https:\/\/kinsta.com\/wp-content\/uploads\/2015\/07\/Screen-Shot-2015-07-22-at-13.48.11.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full \" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2015\/07\/Screen-Shot-2015-07-22-at-13.48.11.png\" alt=\"HTTP request headers sent\" width=\"572\" height=\"167\"><\/a><\/p>\n<h3>Body<\/h3>\n<p>Il body di solito contiene dati sulla risorsa richiesta. Se si invia una richiesta GET al blog principale di Kinsta si dovrebbe ricevere l&#8217;HTML richiesto per rendere la pagina (la risorsa) nel contenuto del body.<\/p>\n<h3>Altre Informazioni<\/h3>\n<p>Questo \u00e8 tutto quello che dovete sapere per ora sull&#8217;HTTP. Ci concentreremo soprattutto sul nome del metodo (GET,POST,etc), sulle intestazioni e sul body. Se volete saperne di pi\u00f9, consiglio <a href=\"http:\/\/www.jmarshall.com\/easy\/http\/\">la spiegazione di James Marshall sull&#8217;HTTP<\/a>, \u00e8 un primer molto ben scritto per chi vuole conoscere meglio il protocollo.<\/p>\n<h2 id=\"restful-apis\">Informazioni sulle API Restful<\/h2>\n<p>Le API Restful API, o metodologia REST, hanno lo scopo di fornire un modo semplice e standard per interagire con un&#8217;applicazione (qui potete saperne di pi\u00f9 sulle <a href=\"https:\/\/kinsta.com\/it\/blog\/rest-api-wordpress\/\">basi della REST API di WordPress<\/a>). Spesso sono usate in combinazione con HTTP per creare un sistema di interazioni molto comprensibile. Si basano su <strong>percorsi<\/strong> e <strong>verbi HTTP<\/strong>.<\/p>\n<p>I verbi HTTP sono gli stessi nomi dei metodi che abbiamo visto prima, i pi\u00f9 comuni sono: GET, POST, PUT, PUT, DELETE. Penso che PUT sia l&#8217;unico ambiguo qui, pensatelo come un comando di aggiornamento. Quando usiamo questi verbi insieme ai percorsi possiamo costruire un sistema significativo:<\/p>\n<p><code>GET \/post\/1\/<\/code> utilizzato per recuperare il post con l&#8217;ID di 1. DELETE <code>DELETE \/post\/1\/<\/code> utilizzato per cancellare lo stesso post. Potremmo anche usare <code>PUT \/post\/1\/<\/code> per aggiornarlo, fornendo informazioni rilevanti nel corpo della richiesta e nelle intestazioni.<\/p>\n<p>Dovreste vedere che solo aggiungendo una versione HTTP ai codici qui sopra abbiamo in realt\u00e0 la linea iniziale di una transazione HTTP, che \u00e8 solo uno dei motivi per cui questo sistema \u00e8 cos\u00ec potente.<\/p>\n<h2 id=\"wordpress-http-api\">Usare l&#8217;API HTTP di WordPress<\/h2>\n<p>Armati di tutte queste conoscenze, possiamo facilmente comprendere come funziona l&#8217;API HTTP di WordPress. I quattro metodi utilizzati per fare richieste e intercettare le risposte sono:<\/p>\n<ul>\n<li><code>wp_remote_get()<\/code><\/li>\n<li><code>wp_remote_post()<\/code><\/li>\n<li><code>wp_remote_head()<\/code><\/li>\n<li><code>wp_remote_request()<\/code><\/li>\n<\/ul>\n<p>Le prime due funzioni sono autoesplicative, utilizzano nella richiesta rispettivamente il metodo GET e il metodo POST. La terza funzione utilizza il metodo HEAD, di cui non abbiamo ancora parlato. Questo metodo \u00e8 usato per recuperare solo le intestazioni di una risposta. Questo pu\u00f2 far risparmiare <strong>molto<\/strong> sulle spese generali se abbiamo solo bisogno di alcuni metadati su una risorsa. La funzione finale \u00e8 una funzione generica, si pu\u00f2 specificare quale metodo si vuole usare all&#8217;interno dei parametri della funzione.<\/p>\n<p>Ci sono cinque funzioni aggiuntive che possiamo utilizzare per recuperare parti specifiche della risposta. Queste sono fondamentalmente delle scorciatoie per navigare nella massa di dati che riceviamo:<\/p>\n<ul>\n<li><code>wp_remote_retrieve_body()<\/code><\/li>\n<li><code>wp_remote_retrieve_header()<\/code><\/li>\n<li><code>wp_remote_retrieve_headers()<\/code><\/li>\n<li><code>wp_remote_retrieve_response_code()<\/code><\/li>\n<li><code>wp_remote_retrieve_response_message()<\/code><\/li>\n<\/ul>\n<h3>La Nostra Prima Richiesta HTTP<\/h3>\n<p>Facciamo un rapido test recuperando le informazioni dell&#8217;header del blog di Kinsta. Lo si pu\u00f2 fare ovunque all&#8217;interno di un plugin o di un tema, ma ovviamente si dovrebbe essere all&#8217;interno di un ambiente di test per assicurarsi di non produrre testo indesiderato su un sito live.<\/p>\n<pre><code class=\"language-php\">$response = wp_remote_head( 'https:\/\/kinsta.com\/blog\/' );\nvar_dump( $response )<\/code><\/pre>\n<p>Come si pu\u00f2 vedere dalla risposta che otteniamo qui sotto, la sezione del body \u00e8 vuota (dato che stiamo usando il metodo HEAD) e sono mostrate tutte le intestazioni. Per prendere solo gli header senza tutti gli altri elementi dell&#8217;array, potremmo usare la funzione <code>wp_remote_retrieve_headers()<\/code>.<\/p>\n<pre><code class=\"language-php\">array (size=5)\n  'headers' =&gt; \n    array (size=13)\n      'server' =&gt; string 'nginx' (length=5)\n      'date' =&gt; string 'Wed, 22 Jul 2015 14:22:07 GMT' (length=29)\n      'content-type' =&gt; string 'text\/html; charset=UTF-8' (length=24)\n      'connection' =&gt; string 'close' (length=5)\n      'vary' =&gt; string 'Accept-Encoding' (length=15)\n      'x-pingback' =&gt; string 'https:\/\/kinsta.com\/xmlrpc.php' (length=29)\n      'x-powered-by' =&gt; string 'HHVM\/3.8.0' (length=10)\n      'link' =&gt; string '; rel=\"https:\/\/github.com\/WP-API\/WP-API\"' (length=68)\n      'x-frame-options' =&gt; string 'DENY' (length=4)\n      'x-content-type-options' =&gt; string 'nosniff' (length=7)\n      'strict-transport-security' =&gt; string 'max-age=31536000' (length=16)\n      'x-kinsta-cache' =&gt; string 'HIT' (length=3)\n      'content-encoding' =&gt; string 'gzip' (length=4)\n  'body' =&gt; string '' (length=0)\n  'response' =&gt; \n    array (size=2)\n      'code' =&gt; int 200\n      'message' =&gt; string 'OK' (length=2)\n  'cookies' =&gt; \n    array (size=0)\n      empty\n  'filename' =&gt; null<\/code><\/pre>\n<h3>Dare un Senso alle API<\/h3>\n<p><a href=\"https:\/\/kinsta.com\/wp-content\/uploads\/2015\/07\/twitter-wordpress-api.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full \" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2015\/07\/twitter-wordpress-api.png\" alt=\"twitter wordpress api\" width=\"800\" height=\"185\"><\/a><\/p>\n<p>La pi\u00f9 grande barriera che vedo per gli sviluppatori \u00e8 la quantit\u00e0 di nuove cose che devono mettere in atto per far funzionare una chiamata API. Bisogna conoscere l&#8217;HTTP, come fare richieste e anche come autenticarsi correttamente. Senza di questo, ogni singola chiamata fallir\u00e0. Vediamo un esempio attraverso le API di Twitter, dato che hanno un&#8217;ottima documentazione.<\/p>\n<p>Ci occuperemo <a href=\"https:\/\/dev.twitter.com\/oauth\/application-only\">dell&#8217;Application-only Authentication<\/a> (che \u00e8 un flusso pi\u00f9 semplice). Seguir\u00f2 gli stessi passaggi suggeriti da Twitter. Prima di iniziare, assicuratevi di <a href=\"https:\/\/apps.twitter.com\/\">creare un&#8217;applicazione Twitter<\/a>.<\/p>\n<p>Dovreste essere in grado di aggiungere il codice qui sotto in qualsiasi punto di un tema o di un plugin, ma, come prima, assicuratevi di utilizzare un sito di prova!<\/p>\n<h4>Passo 1: Encode di Consumer Key e Secret<\/h4>\n<p>Una volta creata un&#8217;applicazione, si dovrebbe avere a portata di mano una chiave utente e un segreto. Per rendere le cose pi\u00f9 semplici, creiamo delle costanti che contengano queste informazioni.<\/p>\n<pre><code class=\"language-php\">define( 'TWITTER_CONSUMER_KEY', '12disnir382jeqwdasd23wdasi' );\ndefine( 'TWITTER_CONSUMER_SECRET', '23wdajskduhtrq2c32cuq9r8uhuf' )<\/code><\/pre>\n<p>I tre passaggi per la creazione di una versione codificata di questi valori sono illustrati nella documentazione:<\/p>\n<ul>\n<li>URL encode di consumer key e consumer secret<\/li>\n<li>Concatenazione con due punti (:)<\/li>\n<li>Codifica Base64 dell&#8217;intera stringa<\/li>\n<\/ul>\n<p>In PHP tutto questo sar\u00e0 abbastanza facile da fare. Ecco qua!<\/p>\n<pre><code class=\"language-php\">\n$key = urlencode( TWITTER_CONSUMER_KEY );\n$secret = urlencode( TWITTER_CONSUMER_SECRET );\n$concatenated = $key . ':' . $secret;\n$encoded = base64_encode( $concatenated );\n<\/code><\/pre>\n<h4>Passo 2: Ottenere un Token al Portatore<\/h4>\n<p>Invece di utilizzare la vostra vera password, inviate a Twitter la vostra stringa codificata (che utilizza le vostre credenziali API) per ricevere un pass temporaneo valido per un determinato periodo di tempo. Per farlo, faremo una richiesta HTTP, ecco cosa ha da dire Twitter:<\/p>\n<ul>\n<li>La richiesta deve essere una richiesta HTTP POST.<\/li>\n<li>La richiesta deve includere un&#8217;intestazione di autorizzazione con il valore di Basic.<\/li>\n<li>La richiesta deve includere un&#8217;intestazione Content-Type con il valore di application\/x-wwww-form-urlencoded;charset=UTF-8.<\/li>\n<li>Il corpo della richiesta deve essere grant_type=client_credentials.<\/li>\n<\/ul>\n<p>Cominciamo dalle basi. Sappiamo che abbiamo bisogno di una richiesta POST, quindi useremo <code>wp_remote_post()<\/code>. La funzione prende due parametri; il primo \u00e8 l&#8217;URL, il secondo contiene argomenti opzionali. L&#8217;URL sar\u00e0 <code>https:\/\/api.twitter.com\/oauth2\/token<\/code>, useremo il secondo parametro per gestire tutti gli altri requisiti.<\/p>\n<pre><code class=\"language-php\">$args = array(\n    'headers' =&gt; array(\n        'Authorization' =&gt; 'Basic ' . $encoded,\n        'Content-Type' =&gt; 'application\/x-www-form-urlencoded;charset=UTF-8'\n    ),\n    'body' =&gt; 'grant_type=client_credentials'\n);\n$response = wp_remote_post( 'https:\/\/api.twitter.com\/oauth2\/token', $args );\n<\/code><\/pre>\n<p>Le intestazioni devono essere aggiunte come array, il tipo di intestazione \u00e8 la chiave, il valore sar\u00e0 il valore dell&#8217;elemento dell&#8217;array. Il corpo deve essere una stringa. In caso di successo, si dovrebbe vedere una risposta simile a quella sottostante.<\/p>\n<pre><code class=\"language-php\">array (size=5)\n  'headers' =&gt; \n    array (size=23)\n      'cache-control' =&gt; string 'no-cache, no-store, must-revalidate, pre-check=0, post-check=0' (length=62)\n      'content-disposition' =&gt; string 'attachment; filename=json.json' (length=30)\n      'content-encoding' =&gt; string 'deflate' (length=7)\n      'content-length' =&gt; string '142' (length=3)\n      'content-type' =&gt; string 'application\/json;charset=utf-8' (length=30)\n      'date' =&gt; string 'Wed, 22 Jul 2015 14:47:37 GMT' (length=29)\n      'expires' =&gt; string 'Tue, 31 Mar 1981 05:00:00 GMT' (length=29)\n      'last-modified' =&gt; string 'Wed, 22 Jul 2015 14:47:37 GMT' (length=29)\n      'ml' =&gt; string 'A' (length=1)\n      'pragma' =&gt; string 'no-cache' (length=8)\n      'server' =&gt; string 'tsa_b' (length=5)\n      'set-cookie' =&gt; string 'guest_id=v1%3A14375720938219946; Domain=.twitter.com; Path=\/; Expires=Fri, 21-Jul-2017 14:47:37 UTC' (length=100)\n      'status' =&gt; string '200 OK' (length=6)\n      'strict-transport-security' =&gt; string 'max-age=631138519' (length=17)\n      'x-connection-hash' =&gt; string 'd8b10926f99dwef93rd7edbe5a71a97a' (length=32)\n      'x-content-type-options' =&gt; string 'nosniff' (length=7)\n      'x-frame-options' =&gt; string 'SAMEORIGIN' (length=10)\n      'x-response-time' =&gt; string '34' (length=2)\n      'x-transaction' =&gt; string 'ef0ebwefweece62ef' (length=16)\n      'x-tsa-request-body-time' =&gt; string '0' (length=1)\n      'x-twitter-response-tags' =&gt; string 'BouncerCompliant' (length=16)\n      'x-ua-compatible' =&gt; string 'IE=edge,chrome=1' (length=16)\n      'x-xss-protection' =&gt; string '1; mode=block' (length=13)\n  'body' =&gt; string '{\"token_type\":\"bearer\",\"access_token\":\"AAAAAAAAAAAAAAAAAAAAAFoafQAAAAAAqg%2BxmuH83hjsod6crH5bKTUX9Arc%3D5dWpp0XCTDjyiXxMC7LDLg8JbzPdGlCsJi2R1qjY1FMksTAFyG\"}' (length=155)\n  'response' =&gt; \n    array (size=2)\n      'code' =&gt; int 200\n      'message' =&gt; string 'OK' (length=2)\n  'cookies' =&gt; \n    array (size=1)\n      0 =&gt; \n        object(WP_Http_Cookie)[303]\n          public 'name' =&gt; string 'guest_id' (length=8)\n          public 'value' =&gt; string 'v1:143757645770219946' (length=21)\n          public 'expires' =&gt; int 1500648457\n          public 'path' =&gt; string '\/' (length=1)\n          public 'domain' =&gt; string '.twitter.com' (length=12)\n  'filename' =&gt; null<\/code><\/pre>\n<p>Il punto culminante di tutto ci\u00f2 \u00e8 il token di accesso che si trova nel corpo della risposta. Recuperiamolo ora usando le nostre pratiche funzioni di WordPress. Proseguendo con il nostro precedente esempio, potremmo prendere il token di accesso utilizzando il seguente codice:<\/p>\n<pre><code class=\"language-php\">$body = wp_remote_retrieve_body( $response );\n$body = json_decode( $body, true );\n$access_token = $body['access_token'];<\/code><\/pre>\n<h4>Passo 3: Utilizzare il Bearer Token<\/h4>\n<p>L&#8217;ultimo passo \u00e8 semplicemente quello di utilizzare questo token al portatore in tutte le altre chiamate API. Dobbiamo aggiungerlo come header &#8220;Authorization&#8221; con il valore: <code>Bearer [bearer_token]<\/code>. Facciamo una semplice chiamata API che recupera gli ultimi tweet di un utente usando il percorso <a href=\"https:\/\/dev.twitter.com\/rest\/reference\/get\/statuses\/user_timeline\">user_timeline<\/a>.<\/p>\n<pre><code class=\"language-php\">$url = 'https:\/\/api.twitter.com\/1.1\/statuses\/user_timeline.json?screen_name=danielpataki&count=3';\n$args = array(\n    'headers' =&gt; array(\n        'Authorization' =&gt; 'Bearer ' . $access_token,\n    ),\n);\n\n$response = wp_remote_get( $url, $args );\n$tweets = json_decode( wp_remote_retrieve_body($response), true )\n<\/code><\/pre>\n<p>Alla fine di tutto questo, la variabile <code>$tweets<\/code> conterr\u00e0 una serie di tweet. \u00c8 possibile utilizzare varie propriet\u00e0 di questo array per visualizzare il tweet o manipolare i dati.<\/p>\n<h2>Conclusioni<\/h2>\n<p>Come potete vedere, utilizzare l&#8217;API HTTP di WordPress per la connessione a servizi esterni non \u00e8 cos\u00ec difficile. Molte delle API di oggi sono costruite intorno agli stessi principi REST &#8211; una volta che ne imparate una, ne imparerete altre molto velocemente.<\/p>\n<p>Tenete presente che ogni volta che la documentazione vi chiede di usare il body, usate il body, e quando richiede delle intestazioni, aggiungete tutte quelle necessarie. Poi guardate la risposta, convertitela in un array, prendete i dati che vi servono e usateli. Tutto qui.<\/p>\n<p>Se qualcuno ha gi\u00e0 lavorato con un&#8217;API particolarmente buona o cattiva, o se avete qualche consiglio e qualche trucco con l&#8217;API HTTP di WordPress, fatecelo sapere nei commenti!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the things I love about WordPress is all the tools it gives you. Some of these are well known and much-used, like the options and meta APIs. Some are under-utilized, even though they provide great functionality which could make our lives so much easier. Today I&#8217;ll be looking at one of these, the HTTP API.<\/p>\n","protected":false},"author":18,"featured_media":58178,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[21446,3],"topic":[25873],"class_list":["post-42248","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-api","tag-wordpress","topic-sviluppo-wordpress"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Usare l&#039;API HTTP di WordPress- Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"L&#039;API HTTP di WordPress permette di effettuare chiamate HTTP molto pi\u00f9 facilmente. Ecco un tutorial completo.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Usare l&#039;API HTTP di WordPress\" \/>\n<meta property=\"og:description\" content=\"L&#039;API HTTP di WordPress permette di effettuare chiamate HTTP molto pi\u00f9 facilmente. Ecco un tutorial completo.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstaitalia\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-12-15T08:09:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-02-03T12:04:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2020\/12\/api-http-wordpress-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"500\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Daniel Pataki\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"L&#039;API HTTP di WordPress permette di effettuare chiamate HTTP molto pi\u00f9 facilmente. Ecco un tutorial completo.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2020\/12\/api-http-wordpress-1.png\" \/>\n<meta name=\"twitter:creator\" content=\"@danielpataki\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Pataki\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/\"},\"author\":{\"name\":\"Daniel Pataki\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/b162216499225e1a4cdd35518f8ef0ff\"},\"headline\":\"Usare l&#8217;API HTTP di WordPress\",\"datePublished\":\"2020-12-15T08:09:45+00:00\",\"dateModified\":\"2023-02-03T12:04:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/\"},\"wordCount\":1439,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2020\/12\/api-http-wordpress-1.png\",\"keywords\":[\"API\",\"WordPress\"],\"articleSection\":[\"Sviluppo WordPress\"],\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/\",\"name\":\"Usare l'API HTTP di WordPress- Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2020\/12\/api-http-wordpress-1.png\",\"datePublished\":\"2020-12-15T08:09:45+00:00\",\"dateModified\":\"2023-02-03T12:04:58+00:00\",\"description\":\"L'API HTTP di WordPress permette di effettuare chiamate HTTP molto pi\u00f9 facilmente. Ecco un tutorial completo.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2020\/12\/api-http-wordpress-1.png\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2020\/12\/api-http-wordpress-1.png\",\"width\":800,\"height\":500,\"caption\":\"Usare l'API HTTP di WordPress\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sviluppo di WordPress\",\"item\":\"https:\/\/kinsta.com\/it\/argomenti\/sviluppo-wordpress\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Usare l&#8217;API HTTP di WordPress\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/it\/#website\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluzioni di hosting premium, veloci e sicure\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/it\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/it\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstaitalia\/\",\"https:\/\/x.com\/Kinsta_IT\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/b162216499225e1a4cdd35518f8ef0ff\",\"name\":\"Daniel Pataki\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2a44c1ab807766aeaa5c8d76d4c5ea66?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2a44c1ab807766aeaa5c8d76d4c5ea66?s=96&d=mm&r=g\",\"caption\":\"Daniel Pataki\"},\"description\":\"Hi, my name is Daniel, I'm the CTO here at Kinsta. You may know me from Smashing Magazine, WPMU Dev, Tuts+ and other WordPress\/Development magazines. Aside from WordPress and PHP I spend most of my time around Node, React, GraphQL and other technologies in the Javascript space. When not working on making the best hosting solution in the Universe I collect board games, play table football in the office, travel or play guitar and sing in a pretty bad band.\",\"sameAs\":[\"http:\/\/danielpataki.com\",\"https:\/\/x.com\/danielpataki\"],\"url\":\"https:\/\/kinsta.com\/it\/blog\/author\/danielpataki\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Usare l'API HTTP di WordPress- Kinsta\u00ae","description":"L'API HTTP di WordPress permette di effettuare chiamate HTTP molto pi\u00f9 facilmente. Ecco un tutorial completo.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/","og_locale":"it_IT","og_type":"article","og_title":"Usare l'API HTTP di WordPress","og_description":"L'API HTTP di WordPress permette di effettuare chiamate HTTP molto pi\u00f9 facilmente. Ecco un tutorial completo.","og_url":"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstaitalia\/","article_published_time":"2020-12-15T08:09:45+00:00","article_modified_time":"2023-02-03T12:04:58+00:00","og_image":[{"width":800,"height":500,"url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2020\/12\/api-http-wordpress-1.png","type":"image\/png"}],"author":"Daniel Pataki","twitter_card":"summary_large_image","twitter_description":"L'API HTTP di WordPress permette di effettuare chiamate HTTP molto pi\u00f9 facilmente. Ecco un tutorial completo.","twitter_image":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2020\/12\/api-http-wordpress-1.png","twitter_creator":"@danielpataki","twitter_site":"@Kinsta_IT","twitter_misc":{"Scritto da":"Daniel Pataki","Tempo di lettura stimato":"10 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/"},"author":{"name":"Daniel Pataki","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/b162216499225e1a4cdd35518f8ef0ff"},"headline":"Usare l&#8217;API HTTP di WordPress","datePublished":"2020-12-15T08:09:45+00:00","dateModified":"2023-02-03T12:04:58+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/"},"wordCount":1439,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2020\/12\/api-http-wordpress-1.png","keywords":["API","WordPress"],"articleSection":["Sviluppo WordPress"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/","url":"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/","name":"Usare l'API HTTP di WordPress- Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2020\/12\/api-http-wordpress-1.png","datePublished":"2020-12-15T08:09:45+00:00","dateModified":"2023-02-03T12:04:58+00:00","description":"L'API HTTP di WordPress permette di effettuare chiamate HTTP molto pi\u00f9 facilmente. Ecco un tutorial completo.","breadcrumb":{"@id":"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/#primaryimage","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2020\/12\/api-http-wordpress-1.png","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2020\/12\/api-http-wordpress-1.png","width":800,"height":500,"caption":"Usare l'API HTTP di WordPress"},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/it\/blog\/api-http-wordpress\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/it\/"},{"@type":"ListItem","position":2,"name":"Sviluppo di WordPress","item":"https:\/\/kinsta.com\/it\/argomenti\/sviluppo-wordpress\/"},{"@type":"ListItem","position":3,"name":"Usare l&#8217;API HTTP di WordPress"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/it\/#website","url":"https:\/\/kinsta.com\/it\/","name":"Kinsta\u00ae","description":"Soluzioni di hosting premium, veloci e sicure","publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/it\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstaitalia\/","https:\/\/x.com\/Kinsta_IT","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/b162216499225e1a4cdd35518f8ef0ff","name":"Daniel Pataki","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2a44c1ab807766aeaa5c8d76d4c5ea66?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2a44c1ab807766aeaa5c8d76d4c5ea66?s=96&d=mm&r=g","caption":"Daniel Pataki"},"description":"Hi, my name is Daniel, I'm the CTO here at Kinsta. You may know me from Smashing Magazine, WPMU Dev, Tuts+ and other WordPress\/Development magazines. Aside from WordPress and PHP I spend most of my time around Node, React, GraphQL and other technologies in the Javascript space. When not working on making the best hosting solution in the Universe I collect board games, play table football in the office, travel or play guitar and sing in a pretty bad band.","sameAs":["http:\/\/danielpataki.com","https:\/\/x.com\/danielpataki"],"url":"https:\/\/kinsta.com\/it\/blog\/author\/danielpataki\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/42248","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/comments?post=42248"}],"version-history":[{"count":6,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/42248\/revisions"}],"predecessor-version":[{"id":58179,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/42248\/revisions\/58179"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/42248\/translations\/en"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/42248\/translations\/de"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/42248\/translations\/it"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/42248\/translations\/es"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/42248\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/42248\/translations\/fr"},{"href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/42248\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media\/58178"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media?parent=42248"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/tags?post=42248"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/topic?post=42248"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}