{"id":65242,"date":"2023-04-28T17:47:05","date_gmt":"2023-04-28T15:47:05","guid":{"rendered":"https:\/\/kinsta.com\/es\/?p=65242&#038;preview=true&#038;preview_id=65242"},"modified":"2025-01-17T14:03:32","modified_gmt":"2025-01-17T13:03:32","slug":"laravel-http","status":"publish","type":"post","link":"https:\/\/kinsta.com\/es\/blog\/laravel-http\/","title":{"rendered":"C\u00f3mo Utilizar el Cliente Integrado de Laravel para Interactuar con APIs Externas"},"content":{"rendered":"<p>Laravel hace que las interacciones API sean pan comido tanto para los desarrolladores web nuevos como para los experimentados. El cliente HTTP de Laravel est\u00e1 construido sobre el cliente HTTP Guzzle de PHP para ofrecer a los desarrolladores una experiencia m\u00e1s fluida al realizar <a href=\"https:\/\/kinsta.com\/es\/blog\/que-es-una-peticion-http\/\">peticiones HTTP<\/a>. Sus caracter\u00edsticas principales incluyen autenticaci\u00f3n, enrutamiento y mapeo objeto-relacional (ORM) eficaz.<\/p>\n<p>Este art\u00edculo explorar\u00e1 el uso del cliente HTTP de Laravel para realizar peticiones, depurar respuestas, crear middleware y macros, y mucho m\u00e1s.<\/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>El Cliente HTTP de Laravel Hace el Trabajo Duro por Ti para las APIs<\/h2>\n<p><a href=\"https:\/\/docs.guzzlephp.org\/en\/stable\/\" target=\"_blank\" rel=\"noopener noreferrer\">Guzzle<\/a> es un sencillo cliente HTTP para PHP. Ofrece funcionalidad para diferentes solicitudes de formularios, incluyendo <code>GET<\/code>, <code>POST<\/code>, <code>PUT<\/code>, y <code>DELETE<\/code> junto con las capacidades de streaming y solicitudes multiparte. Con el cliente HTTP Guzzle, es posible enviar peticiones s\u00edncronas y as\u00edncronas al servidor. Adem\u00e1s, tambi\u00e9n viene con un middleware decente para personalizar el comportamiento del cliente.<\/p>\n<p>El cliente HTTP de Laravel es una envoltura construida sobre Guzzle pero con funcionalidades extra. Incluye soporte para reintentar peticiones fallidas y algunas funciones de ayuda con datos JSON. La mayor\u00eda de las funcionalidades de los clientes HTTP de Laravel son similares a las de Guzzle.<\/p>\n\n<h2>Requisitos Previos<\/h2>\n<p>En las siguientes secciones, aprender\u00e1s m\u00e1s sobre el cliente HTTP de Laravel. Para seguir adelante, necesitar\u00e1s:<\/p>\n<ul>\n<li>Conocimientos b\u00e1sicos de <a href=\"https:\/\/kinsta.com\/es\/blog\/laravel-10\/\">Laravel<\/a>, <a href=\"https:\/\/kinsta.com\/php\/\">PHP<\/a> y <a href=\"https:\/\/kinsta.com\/es\/blog\/performance-api\/\">APIs<\/a><\/li>\n<li>PHP y Composer instalados<\/li>\n<li>Postman<\/li>\n<\/ul>\n<h2>C\u00f3mo Hacer Peticiones<\/h2>\n<p>Para saber c\u00f3mo utilizar un cliente HTTP para hacer una solicitud, puedes aprovechar un mont\u00f3n de API alojadas, como <a href=\"https:\/\/reqres.in\/\" target=\"_blank\" rel=\"noopener noreferrer\">ReqRes<\/a>.<\/p>\n<p>Empieza importando el paquete HTTP incluido al crear la aplicaci\u00f3n. Dentro del archivo <strong>App\/Http\/Controllers\/UserController.php<\/strong>, a\u00f1ade el siguiente c\u00f3digo, empezando por la declaraci\u00f3n use al principio del archivo y el c\u00f3digo restante dentro de la funci\u00f3n 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> Para casos de uso complejos, tambi\u00e9n puedes enviar la solicitud con cabeceras utilizando el m\u00e9todo <code>withHeaders<\/code>.<\/p>\n<p>En el mismo archivo, crea un nuevo m\u00e9todo post utilizando el siguiente c\u00f3digo:<\/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>A continuaci\u00f3n, a\u00f1ade una ruta para \u00e9l dentro del archivo <strong>routes\/web.php<\/strong>:<\/p>\n<pre><code class=\"language-php\">Route::get('post',[UserController::class,'post']);<\/code><\/pre>\n<p>Ahora, se puede utilizar Postman para probar esta ruta. Abre Postman y a\u00f1ade <a href=\"http:\/\/127.0.0.1:8000\/post\">http:\/\/127.0.0.1:8000\/post<\/a> como URL, con el tipo de solicitud <code>GET<\/code>. Cuando hagas clic en <strong>enviar<\/strong>, ver\u00e1s la siguiente respuesta:<\/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=\"Realizar solicitudes con Postman\" width=\"703\" height=\"519\"><figcaption class=\"wp-caption-text\">Realizar solicitudes con Postman<\/figcaption><\/figure>\n<h2>Peticiones Concurrentes<\/h2>\n<p>Las peticiones paralelas mejoran significativamente el rendimiento, ya que puedes obtener m\u00e1s datos en el mismo periodo. El cliente HTTP de Laravel permite realizar peticiones concurrentes utilizando el m\u00e9todo pool.<\/p>\n<p>Dentro de <strong>App\/Http\/Controllers\/UserController.php<\/strong>, a\u00f1ade el siguiente c\u00f3digo:<\/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>A continuaci\u00f3n, a\u00f1ade la ruta de soporte dentro del archivo <strong>routes\/web.php<\/strong>.<\/p>\n<pre><code class=\"language-php\">Route::get('concurrent',[UserController::class,'concurrent']);<\/code><\/pre>\n<p>El navegador da la siguiente respuesta cuando se visita la ruta:<\/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=\"Peticiones concurrentes\" width=\"322\" height=\"109\"><figcaption class=\"wp-caption-text\">Peticiones concurrentes<\/figcaption><\/figure>\n<h2>Macros de Solicitud<\/h2>\n<p>Las macros de petici\u00f3n son \u00fatiles cuando se interact\u00faa con rutas comunes de la API.<\/p>\n<p>Para crear la macro, tienes que definirla dentro del m\u00e9todo boot del archivo <strong>app\/Http\/Providers\/AppServiceProvider.php<\/strong> utilizando el c\u00f3digo que aparece a continuaci\u00f3n:<\/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> Aseg\u00farate de a\u00f1adir la declaraci\u00f3n use al principio del archivo.<\/p>\n<p>A continuaci\u00f3n, utiliza la macro dentro de <code>UserController<\/code> a\u00f1adiendo el siguiente c\u00f3digo:<\/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>Como puedes ver, como la macro ya est\u00e1 creada, no tienes que volver a a\u00f1adir la URL completa.<\/p>\n<p>Por \u00faltimo, a\u00f1ade una ruta en el archivo <strong>routes\/web.php<\/strong> utilizando el siguiente c\u00f3digo:<\/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=\"Solicitud de macro\" width=\"442\" height=\"169\"><figcaption class=\"wp-caption-text\">Solicitud de macro<\/figcaption><\/figure>\n<h2>C\u00f3mo Descodificar las Respuestas<\/h2>\n<p>Para descodificar una respuesta y asegurarte de que una solicitud de API se ha realizado correctamente, utiliza el m\u00e9todo de estado incluido en el cliente. Este m\u00e9todo obtiene el c\u00f3digo de estado enviado desde el servidor y lo muestra.<\/p>\n<p>Para probarlo, sustituye el c\u00f3digo de la macro anterior por el c\u00f3digo siguiente dentro del archivo <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>Aqu\u00ed, el c\u00f3digo de estado 200 significa que la solicitud se ha realizado correctamente.<\/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=\"Respuesta de descodificaci\u00f3n correcta\" width=\"296\" height=\"105\"><figcaption class=\"wp-caption-text\">Respuesta de descodificaci\u00f3n correcta<\/figcaption><\/figure>\n<h2>C\u00f3mo Probar las API JSON<\/h2>\n<p>Laravel dispone de varios ayudantes para probar las API JSON y sus respuestas. Las <a href=\"https:\/\/laravel.com\/docs\/9.x\/http-tests\">funciones de ayuda<\/a> incluyen <strong>json<\/strong>, <strong>getJson<\/strong>, <strong>postJson<\/strong>, <strong>putJson<\/strong>, <strong>patchJson<\/strong>, <strong>deleteJson<\/strong>, etc.<\/p>\n<p>Para entender mejor las Pruebas, crea un escenario de prueba para la ruta del usuario <code>GET<\/code>. Cuando arrancas la aplicaci\u00f3n Laravel, ya est\u00e1 creada la <em>Prueba de Ejemplo<\/em>. Dentro del archivo <strong>tests\/Feature\/ExampleTest.php<\/strong>, sustituye el c\u00f3digo existente por el siguiente:<\/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>El c\u00f3digo a\u00f1adido obtiene los datos JSON en la ruta del usuario y comprueba si el c\u00f3digo de estado es 200 o no.<\/p>\n<p>Una vez que hayas a\u00f1adido el c\u00f3digo de prueba, ejecuta el siguiente comando en tu terminal para ejecutar las pruebas:<\/p>\n<pre><code class=\"language-bash\">.\/vendor\/bin\/phpunit<\/code><\/pre>\n<p>Una vez finalizadas las pruebas, ver\u00e1s que ha ejecutado dos pruebas, ambas con \u00e9xito.<\/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=\"Probar las API JSON\" width=\"784\" height=\"172\"><figcaption class=\"wp-caption-text\">Probar las API JSON<\/figcaption><\/figure>\n<p>Del mismo modo, puedes comprobar distintos tipos de solicitudes y utilizar otros m\u00e9todos de ayuda para realizar pruebas m\u00e1s sofisticadas.<\/p>\n<h2>C\u00f3mo Manejar los Eventos<\/h2>\n<p>Laravel ofrece tres eventos que se disparan cuando se trata de <a href=\"https:\/\/kinsta.com\/es\/blog\/que-es-una-peticion-http\/\">peticiones HTTP<\/a>.<\/p>\n<ul>\n<li><strong>RequestSending<\/strong>, que se produce antes de enviar la solicitud.<\/li>\n<li><strong>ResponseReceived<\/strong>, que es cuando se recibe una respuesta.<\/li>\n<li><strong>ConnectionFailed<\/strong>, que es cuando no se recibe ninguna respuesta.<\/li>\n<\/ul>\n<p>Los tres eventos incluyen la propiedad <code>$request<\/code> para inspeccionar la instancia <code>Illuminate\\Http\\Client\\Request<\/code>, y <code>ResponseReceived<\/code> tiene una <code>$response property<\/code> adicional. Son especialmente \u00fatiles para realizar acciones despu\u00e9s de un evento. Por ejemplo, puede que quieras enviar un correo electr\u00f3nico despu\u00e9s de obtener una respuesta satisfactoria.<\/p>\n<p>Para crear un evento y un oyente, navega hasta el archivo <strong>app\/Providers\/EventServiceProvider.php<\/strong> y sustituye la matriz listen por el siguiente c\u00f3digo.<\/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>A continuaci\u00f3n, ejecuta el siguiente comando en tu terminal:<\/p>\n<pre><code class=\"language-bash\">php artisan event:generate<\/code><\/pre>\n<p>El comando anterior crear\u00e1 el oyente <strong>app\/Listeners\/LogResponseReceived.php<\/strong>. Sustituye el c\u00f3digo de ese archivo por el c\u00f3digo que aparece a continuaci\u00f3n:<\/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>El registro de informaci\u00f3n del c\u00f3digo de estado se imprime en el terminal.<\/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=\"Registros del terminal que muestran el c\u00f3digo de estado\" width=\"613\" height=\"111\"><figcaption class=\"wp-caption-text\">Registros del terminal que muestran el c\u00f3digo de estado<\/figcaption><\/figure>\n\n<h2>Resumen<\/h2>\n<p>Tanto si una organizaci\u00f3n como un desarrollador independiente crean un sitio web o una aplicaci\u00f3n web, las API son la clave de su \u00e9xito. Sin embargo, utilizarlas puede resultar dif\u00edcil.<\/p>\n<p>Muchos <a href=\"https:\/\/kinsta.com\/es\/blog\/frameworks-php\/\">frameworks<\/a>\u00a0y <a href=\"https:\/\/kinsta.com\/es\/blog\/bibliotecas-javascript\/\">bibliotecas<\/a> prometen simplificar este proceso, pero Laravel destaca por su enfoque en la simplicidad y facilidad de uso. Su cliente integrado admite llamadas API sencillas, llamadas API concurrentes, macros API, m\u00e9todos de ayuda para API basadas en JSON y mucho m\u00e1s.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Laravel hace que las interacciones API sean pan comido tanto para los desarrolladores web nuevos como para los experimentados. El cliente HTTP de Laravel est\u00e1 construido &#8230;<\/p>\n","protected":false},"author":259,"featured_media":65243,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[1270,1303],"class_list":["post-65242","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-api","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>C\u00f3mo Utilizar el Cliente Integrado de Laravel para Interactuar con APIs Externas - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Sum\u00e9rgete con nosotros y explora el uso del cliente HTTP de Laravel para hacer peticiones, depurar respuestas, crear middleware y macros, y mucho m\u00e1s.\" \/>\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\/es\/blog\/laravel-http\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C\u00f3mo Utilizar el Cliente Integrado de Laravel para Interactuar con APIs Externas\" \/>\n<meta property=\"og:description\" content=\"Sum\u00e9rgete con nosotros y explora el uso del cliente HTTP de Laravel para hacer peticiones, depurar respuestas, crear middleware y macros, y mucho m\u00e1s.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/es\/blog\/laravel-http\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinsta.es\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-04-28T15:47:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-01-17T13:03:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/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=\"Sum\u00e9rgete con nosotros y explora el uso del cliente HTTP de Laravel para hacer peticiones, depurar respuestas, crear middleware y macros, y mucho m\u00e1s.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/04\/laravel-http.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_ES\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_ES\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Steve Bonisteel\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/laravel-http\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/laravel-http\/\"},\"author\":{\"name\":\"Steve Bonisteel\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f\"},\"headline\":\"C\u00f3mo Utilizar el Cliente Integrado de Laravel para Interactuar con APIs Externas\",\"datePublished\":\"2023-04-28T15:47:05+00:00\",\"dateModified\":\"2025-01-17T13:03:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/laravel-http\/\"},\"wordCount\":1199,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/es\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/laravel-http\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/04\/laravel-http.jpg\",\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/es\/blog\/laravel-http\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/laravel-http\/\",\"url\":\"https:\/\/kinsta.com\/es\/blog\/laravel-http\/\",\"name\":\"C\u00f3mo Utilizar el Cliente Integrado de Laravel para Interactuar con APIs Externas - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/es\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/laravel-http\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/laravel-http\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/04\/laravel-http.jpg\",\"datePublished\":\"2023-04-28T15:47:05+00:00\",\"dateModified\":\"2025-01-17T13:03:32+00:00\",\"description\":\"Sum\u00e9rgete con nosotros y explora el uso del cliente HTTP de Laravel para hacer peticiones, depurar respuestas, crear middleware y macros, y mucho m\u00e1s.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/laravel-http\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/es\/blog\/laravel-http\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/laravel-http\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/04\/laravel-http.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/04\/laravel-http.jpg\",\"width\":3042,\"height\":1521},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/laravel-http\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/es\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Laravel\",\"item\":\"https:\/\/kinsta.com\/es\/secciones\/laravel\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"C\u00f3mo Utilizar el Cliente Integrado de Laravel para Interactuar con APIs Externas\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/es\/#website\",\"url\":\"https:\/\/kinsta.com\/es\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluciones de alojamiento premium, r\u00e1pidas y seguras\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/es\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/es\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/es\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/es\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinsta.es\/\",\"https:\/\/x.com\/Kinsta_ES\",\"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\/es\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f\",\"name\":\"Steve Bonisteel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/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\/es\/blog\/author\/stevebonisteel\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"C\u00f3mo Utilizar el Cliente Integrado de Laravel para Interactuar con APIs Externas - Kinsta\u00ae","description":"Sum\u00e9rgete con nosotros y explora el uso del cliente HTTP de Laravel para hacer peticiones, depurar respuestas, crear middleware y macros, y mucho m\u00e1s.","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\/es\/blog\/laravel-http\/","og_locale":"es_ES","og_type":"article","og_title":"C\u00f3mo Utilizar el Cliente Integrado de Laravel para Interactuar con APIs Externas","og_description":"Sum\u00e9rgete con nosotros y explora el uso del cliente HTTP de Laravel para hacer peticiones, depurar respuestas, crear middleware y macros, y mucho m\u00e1s.","og_url":"https:\/\/kinsta.com\/es\/blog\/laravel-http\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinsta.es\/","article_published_time":"2023-04-28T15:47:05+00:00","article_modified_time":"2025-01-17T13:03:32+00:00","og_image":[{"width":3042,"height":1521,"url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/04\/laravel-http.jpg","type":"image\/jpeg"}],"author":"Steve Bonisteel","twitter_card":"summary_large_image","twitter_description":"Sum\u00e9rgete con nosotros y explora el uso del cliente HTTP de Laravel para hacer peticiones, depurar respuestas, crear middleware y macros, y mucho m\u00e1s.","twitter_image":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/04\/laravel-http.jpg","twitter_creator":"@Kinsta_ES","twitter_site":"@Kinsta_ES","twitter_misc":{"Escrito por":"Steve Bonisteel","Tiempo de lectura":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/es\/blog\/laravel-http\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/es\/blog\/laravel-http\/"},"author":{"name":"Steve Bonisteel","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f"},"headline":"C\u00f3mo Utilizar el Cliente Integrado de Laravel para Interactuar con APIs Externas","datePublished":"2023-04-28T15:47:05+00:00","dateModified":"2025-01-17T13:03:32+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/es\/blog\/laravel-http\/"},"wordCount":1199,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/es\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/es\/blog\/laravel-http\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/04\/laravel-http.jpg","inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/es\/blog\/laravel-http\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/es\/blog\/laravel-http\/","url":"https:\/\/kinsta.com\/es\/blog\/laravel-http\/","name":"C\u00f3mo Utilizar el Cliente Integrado de Laravel para Interactuar con APIs Externas - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/es\/blog\/laravel-http\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/es\/blog\/laravel-http\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/04\/laravel-http.jpg","datePublished":"2023-04-28T15:47:05+00:00","dateModified":"2025-01-17T13:03:32+00:00","description":"Sum\u00e9rgete con nosotros y explora el uso del cliente HTTP de Laravel para hacer peticiones, depurar respuestas, crear middleware y macros, y mucho m\u00e1s.","breadcrumb":{"@id":"https:\/\/kinsta.com\/es\/blog\/laravel-http\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/es\/blog\/laravel-http\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/blog\/laravel-http\/#primaryimage","url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/04\/laravel-http.jpg","contentUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/04\/laravel-http.jpg","width":3042,"height":1521},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/es\/blog\/laravel-http\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/es\/"},{"@type":"ListItem","position":2,"name":"Laravel","item":"https:\/\/kinsta.com\/es\/secciones\/laravel\/"},{"@type":"ListItem","position":3,"name":"C\u00f3mo Utilizar el Cliente Integrado de Laravel para Interactuar con APIs Externas"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/es\/#website","url":"https:\/\/kinsta.com\/es\/","name":"Kinsta\u00ae","description":"Soluciones de alojamiento premium, r\u00e1pidas y seguras","publisher":{"@id":"https:\/\/kinsta.com\/es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/es\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinsta.es\/","https:\/\/x.com\/Kinsta_ES","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\/es\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f","name":"Steve Bonisteel","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/#\/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\/es\/blog\/author\/stevebonisteel\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/65242","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/users\/259"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/comments?post=65242"}],"version-history":[{"count":10,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/65242\/revisions"}],"predecessor-version":[{"id":65414,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/65242\/revisions\/65414"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/65242\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/65242\/translations\/it"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/65242\/translations\/fr"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/65242\/translations\/pt"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/65242\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/65242\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/65242\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/65242\/translations\/es"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/65242\/translations\/se"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/65242\/translations\/dk"},{"href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/65242\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/media\/65243"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/media?parent=65242"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/tags?post=65242"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/topic?post=65242"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}