Nahuel Segovia
Posted on April 14, 2021
Hola, en esta oportunidad les vengo a mostrar como hacer peticiones HTTP con Guzzle en Laravel.
Lo primero que tenemos que hacer es instalar Guzzle en nuestro proyecto:
composer require guzzlehttp/guzzle
Una vez instalado podemos usarlo en cualquier parte con la clase http que usa Guzzle, esto importandola con la instruccione use:
use Illuminate\Support\Facades\Http;
En este caso yo lo estoy utilizando para realizar peticiones en el mismo proyecto, y el resultado de la petición poder usarlo en el test
<?php
namespace Tests\Feature;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\WithFaker;
use Tests\TestCase;
use App\Models\Product;
use Illuminate\Support\Facades\Http;
class appServicecsProductServiceTest extends TestCase
{
/**
* A basic feature test example.
*
* @return void
*/
public function test_create()
{
$product = Http::post('http://localhost:8000/api/admin/productos',
['product_title' => 'producto_de_prueba',
'product_price' => '200000',
'product_content' => 'Este producto es importado de italia',
'product_photo' => 'imagen.png',]
);
$this->assertEquals($product->body(), 'Product has been created successfully');
}
}
Estos son los distintos métodos que nos van a permitir acceder al estado de la petición:
$product->body() : string;
$product->json() : array|mixed;
$product->collect() : Illuminate\Support\Collection;
$product->status() : int;
$product->ok() : bool;
$product->successful() : bool;
$product->failed() : bool;
$product->serverError() : bool;
$product->clientError() : bool;
$product->header($header) : string;
$product->headers() : array;
Y como el body de la petición me devuelve:
Product has been created successfully
el test pasa:
Para mas información pueden visitar la documentación de Laravel: https://laravel.com/docs/8.x/http-client
Posted on April 14, 2021
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.