За замовчуванням, API ресурси Laravel обгортають відповіді в ключ 'data'. Це зручно в багатьох випадках, але іноді потрібна простіша структура відповіді. Ви можете вимкнути обгортання ресурсів наступним чином:
<?php
namespace App\Providers;
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
public function boot(): void
{
JsonResource::withoutWrapping();
}
}
Ось приклад роботи функції withoutWrapping:
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class ArticleResource extends JsonResource
{
public function toArray($request)
{
return [
'id' => $this->id,
'title' => $this->title,
'content' => $this->content,
'author' => new AuthorResource($this->whenLoaded('author')),
'metadata' => [
'views' => $this->views_count,
'likes' => $this->likes_count,
'published_at' => $this->published_at
]
];
}
}
Приклад відповіді з вимкненим обгортанням:
[
{
"id": 1,
"title": "Laravel Tips",
"content": "Article content here",
"author": {
"id": 1,
"name": "John Doe",
"email": "john@example.com"
},
"metadata": {
"views": 150,
"likes": 42,
"published_at": "2024-03-15T10:00:00Z"
}
}
]
Ця реалізація забезпечує чистішу структуру API, дозволяючи налаштовувати формати відповідей відповідно до потреб вашого застосунку.
Обгортання ресурсів можна вимкнути глобально, зберігаючи водночас більше контролю над структурою відповідей вашого API. Це призводить до інтуїтивніших і зручніших у споживанні точок доступу.
Досліджуйте нові можливості локалізації вашого Laravel-додатку з пакунками, які використовують штучний інтелект, такими як ChatGPT та Claude. Які рішення можуть спростити ваш процес перекладу та зробити його більш точним? Читайте далі, щоб дізнатися більше!
Досліджуйте новий пакет Data Model для PHP, який спрощує процес гідратації об'єктів без зайвих складнощів! Дізнайтеся, як впровадження типобезпечних об'єктів може революціонізувати ваш підхід до розробки, читаючи нашу статтю
У сучасній веб-розробці аутентифікація є ключовою для захисту додатків і даних користувачів. Дізнайтеся, як модуль nuxt-sanctum-authentication спростить інтеграцію між Nuxt 3 та Laravel Sanctum, забезпечуючи надійний і зручний спосіб реалізації аутентифікації для вашого проєкту