Використання withoutWrapping для спрощення API-відповідей

0
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 18 грудня, 2024
Хочете дізнатися, як спростити структуру відповідей у вашій API за допомогою Laravel? У цій статті ми розглянемо, як відключити обгортку ресурсів, щоб отримати більш чистий і зрозумілий формат відповідей для вашого проекту

За замовчуванням, 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. Це призводить до інтуїтивніших і зручніших у споживанні точок доступу.

Популярні

Logomark Logotype

Використання штучного інтелекту для управління перекладами в Laravel

Досліджуйте нові можливості локалізації вашого Laravel-додатку з пакунками, які використовують штучний інтелект, такими як ChatGPT та Claude. Які рішення можуть спростити ваш процес перекладу та зробити його більш точним? Читайте далі, щоб дізнатися більше!

Logomark Logotype

Перетворення даних у типобезпечні DTO за допомогою пакету Data Model

Досліджуйте новий пакет Data Model для PHP, який спрощує процес гідратації об'єктів без зайвих складнощів! Дізнайтеся, як впровадження типобезпечних об'єктів може революціонізувати ваш підхід до розробки, читаючи нашу статтю

Logomark Logotype

Nuxt 3 + Laravel Sanctum: Просте та надійне рішення для автентифікації вашого SPA та API

У сучасній веб-розробці аутентифікація є ключовою для захисту додатків і даних користувачів. Дізнайтеся, як модуль nuxt-sanctum-authentication спростить інтеграцію між Nuxt 3 та Laravel Sanctum, забезпечуючи надійний і зручний спосіб реалізації аутентифікації для вашого проєкту