Метод withResponse у Laravel дозволяє розробникам налаштовувати API-відповіді, змінюючи HTTP-об'єкт відповіді перед його відправленням клієнту. Це вміння виходить за межі простих перетворень даних і дає можливість налаштувати заголовки, коди статусу та інші атрибути відповіді.
Цей підхід особливо корисний при створенні професійних API, які повинні передавати метадані, інформацію про версії або спеціалізовані заголовки клієнтам, що використовують ваші сервіси.
class UserResource extends JsonResource
{
public function withResponse($request, $response)
{
$response->header('X-Resource-Type', 'User');
}
}
Ось приклад реалізації комплексної API-відповіді:
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Http\Request;
class DocumentResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'id' => $this->id,
'title' => $this->title,
'content' => $this->when(
$request->user()->canViewContent($this->resource),
$this->content
),
'created_at' => $this->created_at,
'updated_at' => $this->updated_at
];
}
public function withResponse(Request $request, $response)
{
// Встановлюємо заголовки специфічні для ресурсу
$response->header('X-Document-ID', $this->id);
// Додаємо інформацію про кешування для публічних документів
if ($this->is_public) {
$response->header('Cache-Control', 'public, max-age=3600');
$response->header('ETag', md5($this->updated_at));
}
// Встановлюємо відповідні коди статусу
if ($this->wasRecentlyCreated) {
$response->setStatusCode(201);
}
// Додаємо попередження про застарілі поля за запитом
if ($request->has('include_legacy')) {
$response->header('X-Deprecated-Fields', 'legacy_format,old_structure');
$response->header('X-Deprecation-Date', '2024-07-01');
}
}
}
Метод withResponse трансформує ваші API-ресурси з простих контейнерів даних у повністю налаштовані HTTP-відповіді, які передають важливі метадані разом з основним вмістом
У сучасній веб-розробці аутентифікація є ключовою для захисту додатків і даних користувачів. Дізнайтеся, як модуль nuxt-sanctum-authentication спростить інтеграцію між Nuxt 3 та Laravel Sanctum, забезпечуючи надійний і зручний спосіб реалізації аутентифікації для вашого проєкту
Нова версія Livewire 4, представленої Келебом Порзіо на Laracon US 2025, обіцяє значні покращення у швидкості та організації компонентів. Які з інноваційних функцій підкорять ваше серце? Читайте далі, щоб дізнатися більше про те, як Livewire 4 полегшить вашу роботу
Використання Vite для створення фронтенд-ресурсів у вашому додатку Laravel може бути захоплюючим, але іноді ви можете стикнутися з певними помилками. У цій статті ми розглянемо чотири поширені помилки, з якими ви можете зіткнутися, а також підкажемо способи їх усунення, щоб ви могли знову зосередитися на розробці вашого додатку