Використання Fluent для роботи з HTTP клієнтськими відповідями в Laravel

0
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 13 грудня, 2024
Досліджуйте нові можливості Laravel 11.35, зокрема, як зручно перетворювати відповіді HTTP-клієнта на елементи класу Fluent. Чи готові ви вивчити прості покрокові методи для роботи з даними та отримати більше контролю над вашими проєктами

У Laravel 11.2.0 з'явилася fluent() допомога, яка спрощує конвертацію масивів у Fluent інстанції. Тепер, починаючи з Laravel 11.35, у нас є зручний метод для перетворення відповіді HTTP-клієнта на fluent інстанцію:

use Illuminate\Support\Facades\Http;

$response = Http::get('https://jsonplaceholder.typicode.com/posts')->fluent();

$response->get('0.title'); // sunt aut facere...
$response->collect()->pluck('title'); // ["sunt aut facere...", "qui est esse", ...]

Ще одна корисна можливість — перетворення JSON-даних у конкретні типи. Наприклад, можна конвертувати рядкову дату в Carbon інстанцію:

use Illuminate\Support\Facades\Http;

$response = Http::get('https://api.chucknorris.io/jokes/random')->fluent();

$response->date('created_at');
$response->date('updated_at');

/*
Illuminate\Support\Carbon @1578231741 {#261 ▼ // routes/web.php:9
  date: 2020-01-05 13:42:21.455187 UTC (+00:00)
}
*/

Fluent також підтримує інші корисні типи, як-от boolean, enum, масиви enum та інші. Один із моїх улюблених способів — використовувати знайомі методи, як-от only і except, для отримання конкретних даних:

use Illuminate\Support\Facades\Http;

$response = Http::get('https://api.chucknorris.io/jokes/random')->fluent();

$response->except('categories');
/*
array:6 [▼ // routes/web.php:9
  "created_at" => "2020-01-05 13:42:19.897976"
  "icon_url" => "https://api.chucknorris.io/img/avatar/chuck-norris.png"
  "id" => "KqoQdIJdSE2ezokPmHSvdw"
  "updated_at" => "2020-01-05 13:42:19.897976"
  "url" => "https://api.chucknorris.io/jokes/KqoQdIJdSE2ezokPmHSvdw"
  "value" => "Одного вечора Чак Норріс поїв чилі на вечерю. А наступного дня стався Великий Вибух."
]
*/

$response->only('id', 'url', 'value');

# Дізнайтеся більше

Рекомендую ознайомитися з класом Fluent у документації Laravel API. Fluent використовує trait InteractsWithData, що містить безліч зручних методів для роботи з даними Fluent.

Популярні

Logomark Logotype

Випущено Livewire 3.6

Laravel Livewire випустив нову версію 3.6, яка приносить з собою цікаві HTML-директиви для управління видимістю DOM-елементів і JavaScript-діями. Досліджуйте нові можливості Livewire, що допоможуть вам створити ще більш інтерактивні користувацькі інтерфейси!

Logomark Logotype

Простий пакет RabbitMQ для Laravel

Вам цікаво дізнатися, як спростити інтеграцію RabbitMQ у вашому Laravel-додатку? У нашій статті ми розглянемо пакет Simple RabbitMQ, який дозволяє легко налаштувати багатозʼєднання, публікувати повідомлення та обробляти черги за допомогою простого синтаксису. Читайте далі, щоб дізнатися більше!

Logomark Logotype

Усе, що нам відомо про Livewire 4

Нова версія Livewire 4, представленої Келебом Порзіо на Laracon US 2025, обіцяє значні покращення у швидкості та організації компонентів. Які з інноваційних функцій підкорять ваше серце? Читайте далі, щоб дізнатися більше про те, як Livewire 4 полегшить вашу роботу