{"id":68380,"date":"2023-04-28T16:49:35","date_gmt":"2023-04-28T15:49:35","guid":{"rendered":"https:\/\/kinsta.com\/it\/?p=68380&#038;preview=true&#038;preview_id=68380"},"modified":"2023-05-04T07:40:11","modified_gmt":"2023-05-04T06:40:11","slug":"laravel-http","status":"publish","type":"post","link":"https:\/\/kinsta.com\/it\/blog\/laravel-http\/","title":{"rendered":"Come usare il Client Integrato di Laravel per interagire con le API Esterne"},"content":{"rendered":"<p>Laravel rende le interazioni con le API un gioco da ragazzi sia per gli sviluppatori web principianti che per quelli pi\u00f9 esperti. Il client HTTP di Laravel \u00e8 costruito sulla base del client HTTP Guzzle di PHP per offrire agli sviluppatori un&#8217;esperienza pi\u00f9 fluida durante le <a href=\"https:\/\/kinsta.com\/it\/blog\/cos-e-una-richiesta-http\/\">richieste HTTP<\/a>. Le sue caratteristiche principali includono l&#8217;autenticazione, il routing e un&#8217;efficace mappatura oggetto-relazionale (ORM).<\/p>\n<p>In questo articolo vedremo come utilizzare il client HTTP di Laravel per effettuare richieste, eseguire il debug delle risposte, creare middleware e macro e altro ancora.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Il client HTTP di Laravel fa il lavoro duro per le API<\/h2>\n<p><a href=\"https:\/\/docs.guzzlephp.org\/en\/stable\/\" target=\"_blank\" rel=\"noopener noreferrer\">Guzzle<\/a> \u00e8 un semplice client HTTP per PHP. Offre funzionalit\u00e0 per diverse richieste di moduli, tra cui <code>GET<\/code>, <code>POST<\/code>, <code>PUT<\/code> e <code>DELETE<\/code> oltre a funzionalit\u00e0 di streaming e richieste multipart. Con il client HTTP Guzzle \u00e8 possibile inviare richieste sincrone e asincrone al server. Inoltre, \u00e8 dotato di un discreto middleware per personalizzare il comportamento del client.<\/p>\n<p>Il client HTTP di Laravel \u00e8 un wrapper costruito su Guzzle ma con funzionalit\u00e0 aggiuntive. Include il supporto per la ripetizione delle richieste fallite e alcune funzioni di aiuto con i dati JSON. La maggior parte delle funzionalit\u00e0 dei client HTTP di Laravel sono simili a quelle di Guzzle.<\/p>\n\n<h2>Prerequisiti<\/h2>\n<p>Nelle sezioni seguenti impareremo a conoscere meglio il client HTTP di Laravel. Per seguirci, avrete bisogno di:<\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>Conoscenza di base di <a href=\"https:\/\/kinsta.com\/it\/blog\/laravel-10\/\">Laravel<\/a>, <a href=\"https:\/\/kinsta.com\/php\/\">PHP<\/a> e delle <a href=\"https:\/\/kinsta.com\/it\/blog\/performance-api\/\">API<\/a><\/li>\n<li>PHP e Composer installati<\/li>\n<li>Postman<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>Come fare richieste<\/h2>\n<p>Per capire come utilizzare un client HTTP per effettuare una richiesta, potete sfruttare molte API ospitate, come <a href=\"https:\/\/reqres.in\/\" target=\"_blank\" rel=\"noopener noreferrer\">ReqRes<\/a>.<\/p>\n<p>Iniziate importando il pacchetto HTTP incluso nella creazione dell&#8217;applicazione. All&#8217;interno del file <strong>App\/Http\/Controllers\/UserController.php<\/strong>, aggiungete il seguente codice, a partire dalla dichiarazione use all&#8217;inizio del file e il codice rimanente all&#8217;interno della funzione index.<\/p>\n<pre><code class=\"language-php\">use Illuminate\\Support\\Facades\\Http;\nreturn Http::get(\"https:\/\/reqres.in\/api\/users?page=2\");<\/code><\/pre>\n<p><strong>Nota:<\/strong> per casi d&#8217;uso complessi, \u00e8 anche possibile inviare la richiesta con le intestazioni utilizzando il metodo <code>withHeaders<\/code>.<\/p>\n<p>Nello stesso file, create un nuovo metodo post utilizzando il codice seguente:<\/p>\n<pre><code class=\"language-php\">function post()\n{\n    $response = Http::withHeaders([\n        'Content-Type' =&gt; 'application\/json',\n    ])-&gt;post('https:\/\/reqres.in\/api\/users', [\n        'name' =&gt; 'morpheus',\n        'job' =&gt; 'leader',\n    ]);\n    return $response;\n}<\/code><\/pre>\n<p>Quindi aggiungete un percorso per questo metodo all&#8217;interno del file <strong>routes\/web.php<\/strong>:<\/p>\n<pre><code class=\"language-php\">Route::get('post',[UserController::class,'post']);<\/code><\/pre>\n<p>Ora \u00e8 possibile utilizzare Postman per testare questa rotta. Aprite Postman e aggiungete <a href=\"http:\/\/127.0.0.1:8000\/post\">http:\/\/127.0.0.1:8000\/post<\/a> come URL, con il tipo di richiesta <code>GET<\/code>. Una volta cliccato su <strong>send<\/strong>, vedrete la seguente risposta:<\/p>\n<figure style=\"width: 703px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/postman-requests.png\" alt=\"Fare richieste con Postman\" width=\"703\" height=\"519\"><figcaption class=\"wp-caption-text\">Fare richieste con Postman<\/figcaption><\/figure>\n<h2>Richieste simultanee<\/h2>\n<p>Le richieste parallele migliorano significativamente le prestazioni, in quanto rendono possibile recuperare pi\u00f9 dati nello stesso periodo. Il client HTTP di Laravel permette di effettuare richieste simultanee utilizzando il metodo pool.<\/p>\n<p>All&#8217;interno di <strong>App\/Http\/Controllers\/UserController.php<\/strong>, aggiungete il seguente codice:<\/p>\n<pre><code class=\"language-php\">use Illuminate\\Http\\Client\\Pool;\nfunction concurrent()\n{\n    $responses = Http::pool(fn (Pool $pool) =&gt; [\n        $pool-&gt;get('https:\/\/reqres.in\/api\/users?page=2'),\n        $pool-&gt;get('https:\/\/reqres.in\/api\/users\/2'),\n        $pool-&gt;get('https:\/\/reqres.in\/api\/users?page=2'),\n    ]);\n\n    return $responses[0]-&gt;ok() &&\n        $responses[1]-&gt;ok() &&\n        $responses[2]-&gt;ok();\n}<\/code><\/pre>\n<p>Quindi, aggiungete la route di supporto all&#8217;interno del file <strong>routes\/web.php<\/strong>.<\/p>\n<pre><code class=\"language-php\">Route::get('concurrent',[UserController::class,'concurrent']);<\/code><\/pre>\n<p>Il browser fornisce la seguente risposta quando il percorso viene visitato:<\/p>\n<figure style=\"width: 322px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/concurrent-requests.png\" alt=\"Richieste simultanee\" width=\"322\" height=\"109\"><figcaption class=\"wp-caption-text\">Richieste simultanee<\/figcaption><\/figure>\n<h2>Macro di richiesta<\/h2>\n<p>Le macro di richiesta sono utili quando si interagisce con percorsi API comuni.<\/p>\n<p>Per creare la macro, \u00e8 necessario definirla all&#8217;interno del metodo di avvio del file <strong>app\/Http\/Providers\/AppServiceProvider.php<\/strong> utilizzando il codice seguente:<\/p>\n<pre><code class=\"language-php\">use Illuminate\\Support\\Facades\\Http;\nHttp::macro('reqres', function () {\n    return Http::baseUrl('https:\/\/reqres.in\/api');\n});<\/code><\/pre>\n<p><strong>Nota:<\/strong> assicuratevi di aggiungere l&#8217;istruzione use all&#8217;inizio del file.<\/p>\n<p>Quindi, utilizzate la macro all&#8217;interno del sito <code>UserController<\/code> aggiungendo il seguente codice:<\/p>\n<pre><code class=\"language-php\">function macro()\n{\n    $response = Http::reqres()-&gt;get('\/users?page=2');\n    return $response;\n}<\/code><\/pre>\n<p>Come si pu\u00f2 vedere, poich\u00e9 la macro \u00e8 gi\u00e0 stata creata, non \u00e8 necessario aggiungere nuovamente l&#8217;URL completo.<\/p>\n<p>Infine, aggiungete una route nel file<strong> routes\/web.php<\/strong> utilizzando il codice seguente:<\/p>\n<pre><code class=\"language-php\">Route::get('macro',[UserController::class,'macro']);<\/code><\/pre>\n<figure style=\"width: 442px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/macro-requests.png\" alt=\"Richiesta macro\" width=\"442\" height=\"169\"><figcaption class=\"wp-caption-text\">Richiesta macro<\/figcaption><\/figure>\n<h2>Come decodificare le risposte<\/h2>\n<p>Per decodificare una risposta e assicurarsi che una richiesta API sia andata a buon fine, utilizzate il metodo status incluso nel client. Questo metodo ottiene il codice di stato inviato dal server e lo visualizza.<\/p>\n<p>Per verificarlo, sostituite il codice della macro precedente con il codice seguente all&#8217;interno del file <strong>App\/Http\/Controllers\/UserController.php<\/strong>:<\/p>\n<pre><code class=\"language-php\">function macro()\n{\n    $response = Http::reqres()-&gt;get('\/users?page=2');\n    return $response-&gt;status();\n}<\/code><\/pre>\n<p>In questo caso, il codice di stato 200 significa che la richiesta \u00e8 andata a buon fine.<\/p>\n<figure style=\"width: 296px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/successful-decoding-response.png\" alt=\"Risposta di decodifica avvenuta con successo\" width=\"296\" height=\"105\"><figcaption class=\"wp-caption-text\">Risposta di decodifica avvenuta con successo<\/figcaption><\/figure>\n<h2>Come testare le API JSON<\/h2>\n<p>Laravel dispone di diversi helper per testare le API JSON e le loro risposte. Le <a href=\"https:\/\/laravel.com\/docs\/9.x\/http-tests\">funzioni di aiuto<\/a> includono <strong>json<\/strong>, <strong>getJson<\/strong>, <strong>postJson<\/strong>, <strong>putJson<\/strong>, <strong>patchJson<\/strong>, <strong>deleteJson<\/strong> e cos\u00ec via.<\/p>\n<p>Per capire meglio i test, create uno scenario di prova per il percorso dell&#8217;utente <code>GET<\/code>. Il <em>test di esempio<\/em> esiste gi\u00e0 quando avviate l&#8217;applicazione Laravel. All&#8217;interno del file <strong>tests\/Feature\/ExampleTest.php<\/strong>, sostituite il codice esistente con il seguente:<\/p>\n<pre><code class=\"language-php\">&lt;?php\nnamespace Tests\\Feature;\nuse Illuminate\\Foundation\\Testing\\RefreshDatabase;\nuse Tests\\TestCase;\nclass ExampleTest extends TestCase\n{\n    \/**\n     * A basic test example.\n     *\n     * @return void\n     *\/\n    public function test_example()\n    {\n        $response = $this-&gt;getJson('\/users');\n\n        $response-&gt;assertStatus(200);\n    }\n}<\/code><\/pre>\n<p>Il codice aggiunto recupera i dati JSON nel percorso dell&#8217;utente e controlla se il codice di stato \u00e8 200 o meno.<\/p>\n<p>Una volta aggiunto il codice di prova, eseguite il seguente comando nel terminale per effettuare i test:<\/p>\n<pre><code class=\"language-bash\">.\/vendor\/bin\/phpunit<\/code><\/pre>\n<p>Una volta completati i test, vedrete che sono stati eseguiti due test, entrambi con esito positivo.<\/p>\n<figure style=\"width: 784px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/testing-json-api.png\" alt=\"Testare le API JSON\" width=\"784\" height=\"172\"><figcaption class=\"wp-caption-text\">Testare le API JSON<\/figcaption><\/figure>\n<p>Allo stesso modo, \u00e8 possibile verificare diversi tipi di richieste e utilizzare altri metodi di aiuto per effettuare test pi\u00f9 sofisticati.<\/p>\n<h2>Come gestire gli eventi<\/h2>\n<p>Laravel offre tre eventi da lanciare quando si tratta di <a href=\"https:\/\/kinsta.com\/it\/blog\/cos-e-una-richiesta-http\/\">richieste HTTP<\/a>.<\/p>\n<ul>\n<li><strong>RequestSending<\/strong>, che si verifica prima dell&#8217;invio della richiesta.<\/li>\n<li><strong>ResponseReceived<\/strong>, quando viene ricevuta una risposta.<\/li>\n<li><strong>ConnectionFailed<\/strong>, che si verifica quando non viene ricevuta alcuna risposta.<\/li>\n<\/ul>\n<p>Tutti e tre gli eventi includono la propriet\u00e0 <code>$request<\/code> per ispezionare l&#8217;istanza <code>Illuminate\\Http\\Client\\Request<\/code>\u00a0e <code>ResponseReceived<\/code> ha un ulteriore <code>$response property<\/code>. Questi sono particolarmente utili per eseguire azioni dopo un evento. Ad esempio, potreste voler inviare un&#8217;email dopo aver ricevuto una risposta positiva.<\/p>\n<p>Per creare un evento e un listener, andate al file <strong>app\/Providers\/EventServiceProvider.php<\/strong> e sostituite l&#8217;array listen con il seguente codice.<\/p>\n<pre><code class=\"language-php\">protected $listen = [\n    Registered::class =&gt; [\n        SendEmailVerificationNotification::class,\n    ],\n    'Illuminate\\Http\\Client\\Events\\ResponseReceived' =&gt; [\n        'App\\Listeners\\LogResponseReceived',\n    ],\n];<\/code><\/pre>\n<p>Quindi eseguite il seguente comando nel terminale:<\/p>\n<pre><code class=\"language-bash\">php artisan event:generate<\/code><\/pre>\n<p>Il comando precedente creer\u00e0 il listener <strong>app\/Listeners\/LogResponseReceived.php<\/strong>. Sostituite il codice di questo file con il codice seguente:<\/p>\n<pre><code class=\"language-php\">&lt;?php\nnamespace App\\Listeners;\nuse Illuminate\\Http\\Client\\Events\\ResponseReceived;\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Http\\Response;\nuse Illuminate\\Support\\Facades\\Log;\nclass LogResponseReceived\n{\n    \/**\n     * Create the event listener.\n     *\n     * @return void\n     *\/\n    public function __construct(Request $request, Response $response)\n    {\n        Log::channel('stderr')-&gt;info($response-&gt;status());\n    }\n\n    \/**\n     * Handle the event.\n     *\n     * @param  \\Illuminate\\Http\\Client\\Events\\ResponseReceived  $event\n     * @return void\n     *\/\n    public function handle(ResponseReceived $event)\n    {\n        \n    }\n}<\/code><\/pre>\n<p>Il log informativo del codice di stato viene stampato nel terminale.<\/p>\n<figure style=\"width: 613px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/terminal-codes.png\" alt=\"Log del terminale che mostra il codice di stato\" width=\"613\" height=\"111\"><figcaption class=\"wp-caption-text\">Log del terminale che mostra il codice di stato<\/figcaption><\/figure>\n\n<h2>Riepilogo<\/h2>\n<p>Che un sito o un&#8217;applicazione web siano realizzati da un&#8217;organizzazione o da uno sviluppatore indipendente, le API sono fondamentali per il loro successo. Tuttavia, utilizzarle pu\u00f2 essere difficile.<\/p>\n<p>Molti <a href=\"https:\/\/kinsta.com\/it\/blog\/framework-php\/\">framework<\/a> e <a href=\"https:\/\/kinsta.com\/it\/blog\/librerie-javascript\/\">librerie<\/a> promettono di semplificare questo processo, ma Laravel si distingue per la sua attenzione alla semplicit\u00e0 e all&#8217;intuitivit\u00e0. Il suo client integrato supporta chiamate API semplici, chiamate API simultanee, macro API, metodi di aiuto per API basate su JSON e molto altro.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Laravel rende le interazioni con le API un gioco da ragazzi sia per gli sviluppatori web principianti che per quelli pi\u00f9 esperti. Il client HTTP di &#8230;<\/p>\n","protected":false},"author":259,"featured_media":68381,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[26020],"class_list":["post-68380","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-laravel"],"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>Come usare il Client Integrato di Laravel per interagire con le API Esterne - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Scopri come usare il client HTTP di Laravel per fare richieste, eseguire il debug delle risposte, creare middleware e macro e altro ancora.\" \/>\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\/laravel-http\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Come usare il Client Integrato di Laravel per interagire con le API Esterne\" \/>\n<meta property=\"og:description\" content=\"Scopri come usare il client HTTP di Laravel per fare richieste, eseguire il debug delle risposte, creare middleware e macro e altro ancora.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/it\/blog\/laravel-http\/\" \/>\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=\"2023-04-28T15:49:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-05-04T06:40:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/04\/laravel-http.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"3042\" \/>\n\t<meta property=\"og:image:height\" content=\"1521\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Steve Bonisteel\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Scopri come usare il client HTTP di Laravel per fare richieste, eseguire il debug delle risposte, creare middleware e macro e altro ancora.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/04\/laravel-http.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Steve Bonisteel\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/laravel-http\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/laravel-http\/\"},\"author\":{\"name\":\"Steve Bonisteel\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f\"},\"headline\":\"Come usare il Client Integrato di Laravel per interagire con le API Esterne\",\"datePublished\":\"2023-04-28T15:49:35+00:00\",\"dateModified\":\"2023-05-04T06:40:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/laravel-http\/\"},\"wordCount\":1110,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/laravel-http\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/04\/laravel-http.jpg\",\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/laravel-http\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/laravel-http\/\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/laravel-http\/\",\"name\":\"Come usare il Client Integrato di Laravel per interagire con le API Esterne - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/laravel-http\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/laravel-http\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/04\/laravel-http.jpg\",\"datePublished\":\"2023-04-28T15:49:35+00:00\",\"dateModified\":\"2023-05-04T06:40:11+00:00\",\"description\":\"Scopri come usare il client HTTP di Laravel per fare richieste, eseguire il debug delle risposte, creare middleware e macro e altro ancora.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/laravel-http\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/laravel-http\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/laravel-http\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/04\/laravel-http.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/04\/laravel-http.jpg\",\"width\":3042,\"height\":1521},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/laravel-http\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Laravel\",\"item\":\"https:\/\/kinsta.com\/it\/argomenti\/laravel\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Come usare il Client Integrato di Laravel per interagire con le API Esterne\"}]},{\"@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\/d84ceff87bd64a4368a581fc8aa8bd6f\",\"name\":\"Steve Bonisteel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0adffb3f9c86a6ec8245f8399d540823?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0adffb3f9c86a6ec8245f8399d540823?s=96&d=mm&r=g\",\"caption\":\"Steve Bonisteel\"},\"description\":\"Steve Bonisteel is a Technical Editor at Kinsta who began his writing career as a print journalist, chasing ambulances and fire trucks. He has been covering Internet-related technology since the late 1990s.\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/author\/stevebonisteel\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Come usare il Client Integrato di Laravel per interagire con le API Esterne - Kinsta\u00ae","description":"Scopri come usare il client HTTP di Laravel per fare richieste, eseguire il debug delle risposte, creare middleware e macro e altro ancora.","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\/laravel-http\/","og_locale":"it_IT","og_type":"article","og_title":"Come usare il Client Integrato di Laravel per interagire con le API Esterne","og_description":"Scopri come usare il client HTTP di Laravel per fare richieste, eseguire il debug delle risposte, creare middleware e macro e altro ancora.","og_url":"https:\/\/kinsta.com\/it\/blog\/laravel-http\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstaitalia\/","article_published_time":"2023-04-28T15:49:35+00:00","article_modified_time":"2023-05-04T06:40:11+00:00","og_image":[{"width":3042,"height":1521,"url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/04\/laravel-http.jpg","type":"image\/jpeg"}],"author":"Steve Bonisteel","twitter_card":"summary_large_image","twitter_description":"Scopri come usare il client HTTP di Laravel per fare richieste, eseguire il debug delle risposte, creare middleware e macro e altro ancora.","twitter_image":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/04\/laravel-http.jpg","twitter_creator":"@Kinsta_IT","twitter_site":"@Kinsta_IT","twitter_misc":{"Scritto da":"Steve Bonisteel","Tempo di lettura stimato":"7 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/it\/blog\/laravel-http\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/blog\/laravel-http\/"},"author":{"name":"Steve Bonisteel","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f"},"headline":"Come usare il Client Integrato di Laravel per interagire con le API Esterne","datePublished":"2023-04-28T15:49:35+00:00","dateModified":"2023-05-04T06:40:11+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/laravel-http\/"},"wordCount":1110,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/laravel-http\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/04\/laravel-http.jpg","inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/it\/blog\/laravel-http\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/it\/blog\/laravel-http\/","url":"https:\/\/kinsta.com\/it\/blog\/laravel-http\/","name":"Come usare il Client Integrato di Laravel per interagire con le API Esterne - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/laravel-http\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/laravel-http\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/04\/laravel-http.jpg","datePublished":"2023-04-28T15:49:35+00:00","dateModified":"2023-05-04T06:40:11+00:00","description":"Scopri come usare il client HTTP di Laravel per fare richieste, eseguire il debug delle risposte, creare middleware e macro e altro ancora.","breadcrumb":{"@id":"https:\/\/kinsta.com\/it\/blog\/laravel-http\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/it\/blog\/laravel-http\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/blog\/laravel-http\/#primaryimage","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/04\/laravel-http.jpg","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/04\/laravel-http.jpg","width":3042,"height":1521},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/it\/blog\/laravel-http\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/it\/"},{"@type":"ListItem","position":2,"name":"Laravel","item":"https:\/\/kinsta.com\/it\/argomenti\/laravel\/"},{"@type":"ListItem","position":3,"name":"Come usare il Client Integrato di Laravel per interagire con le API Esterne"}]},{"@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\/d84ceff87bd64a4368a581fc8aa8bd6f","name":"Steve Bonisteel","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0adffb3f9c86a6ec8245f8399d540823?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0adffb3f9c86a6ec8245f8399d540823?s=96&d=mm&r=g","caption":"Steve Bonisteel"},"description":"Steve Bonisteel is a Technical Editor at Kinsta who began his writing career as a print journalist, chasing ambulances and fire trucks. He has been covering Internet-related technology since the late 1990s.","url":"https:\/\/kinsta.com\/it\/blog\/author\/stevebonisteel\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/68380","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\/259"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/comments?post=68380"}],"version-history":[{"count":9,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/68380\/revisions"}],"predecessor-version":[{"id":68526,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/68380\/revisions\/68526"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68380\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68380\/translations\/it"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68380\/translations\/fr"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68380\/translations\/pt"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68380\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68380\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68380\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68380\/translations\/es"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68380\/translations\/se"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68380\/translations\/dk"},{"href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68380\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media\/68381"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media?parent=68380"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/tags?post=68380"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/topic?post=68380"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}