HTTP фасад в Laravel 7

HTTP фасад в Laravel 7

Laravel 7x включает фасад для выполнения Http-запроса со стороны сервера. До Laravel 7 большинство разработчиков использовали пакет Guzzle Http client для выполнения Http-запроса, что непросто для новичка и немного сложно при работе с API-запросом, аутентификацией и так далее. Начиная с Laravel 7, разработчики могут легко использовать HTTP-фасад для создания HTTP-запроса с хорошим и чистым синтаксисом! На самом деле, Laravel 7 Http facade использует библиотеку Guzzle, но класс Http facade поставляется с очень простым и чистым синтаксисом, что делает его более элегантным для разработчиков. Давайте рассмотрим http-фасад Laravel 7 на примере.

Для Laravel 7 мы должны подключить фасад в наш код.

use Illuminate\Support\Facades\Http;

Laravel 7 Http GET запрос

Это очень просто сделать get запрос с помощью Laravel 7 Http фасада. Мы должны просто передать URL-адрес в методе get, а остальные вещи будут обрабатываться с помощью HTTP-фасада. Мы можем проанализировать тело ответа с помощью метода JSON, что облегчает жизнь, не так ли?

$response = Http::get("http://jsonplaceholder.typicode.com/todos/1");
$response->json();
laravel7-http-ответ.формат PNG

Мы можем получить ответные данные различными способами с помощью этих методов

$response['foo']; // get the specific data from body
$response->body(); // it will return raw response body data
$response->json(); // it will parse response body to JSON
$response->headers(); // get the response headers

Получить запрос с параметрами

Пример ниже показывает как передавать параметры в get запросе.

$response = Http::get("http://example.com/search",['catId' => 123]);

Это сделает запрос get похожим на http://example.com/search?catId=123

Laravel 7 Http POST запрос

Запрос POST, как и запрос GET, делается аналогично. Ничего другого писать не потребуется.

$data = [
  'email'=>'user@example.com',
  'password'=>12345
];
$response = Http::post("http://example.com/api/login",$data);

if($response->ok()){
  // do whatever you want
}

POST запрос с заголовками

Иногда нам нужно передать информацию заголовков вместе с нашим запросом. В Laravel 7 Http facade мы можем легко сделать это с помощью метода withHeaders.

$data = [
  'title'=>'Task No 1',
  'status'=>1
];
$url = "http://example.com/api/todos/create";

$response = Http::withHeaders(['token' => 'xe234232...'])->post($url,$data);
if($response->ok()){
  // do whatever you want
}

Laravel 7 хзелперы Http запросов

// send as a form-data
$response = Http::asForm()->post(...);

//send raw body
$response = Http::withBody(base64_encode($photo), 'image/jpeg')->post(...);

$response = Http::withHeaders(['foo'=>'bar'])->post...); // send headers with request

//send files as multi-part
$response = Http::attach('attachment',file_get_contents('photo.jpg'))->post(...);

// basic authentication
$response = Http::withBasicAuth('user@example.com', 'q2343')->post(...);

$response = Http::withToken('q23432x342')->post(...);

Laravel 7 хелперы по Http ответам

Вот некоторые Laravel 7 Http хелперы для обработки ответов, которые помогают нам справиться с нашим ответом.

$response->status();
$response->ok();
$response->successful();
$response->serverError();
$response->clientError();

Laravel 7 Http хелперы для работы со временем

//wait maximum of 3 seconds for the response
Http::timeout(3)->get(...);

//3 times retry with 100 milliseconds interval
Http::retry(3, 100)->post(...);

admin

admin

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

%d такие блоггеры, как: