Maison > développement back-end > tutoriel php > Personnalisation de la réponse aux ressources dans les API Laravel

Personnalisation de la réponse aux ressources dans les API Laravel

Robert Michael Kim
Libérer: 2025-03-05 15:22:14
original
452 Les gens l'ont consulté

Resource Response Customization in Laravel APIs

La méthode withResponse de Laravel fournit un moyen puissant d'améliorer vos réponses API. Il vous permet de modifier l'objet de réponse HTTP avant qu'il ne soit envoyé au client, allant au-delà des ajustements de données simples pour englober les en-têtes, les codes d'état et d'autres attributs de réponse.

Ceci est particulièrement utile pour construire des API robustes qui doivent transmettre des métadonnées, des détails de versioning ou des en-têtes personnalisés aux clients.

Voici un exemple de base:

class UserResource extends JsonResource
{
    public function withResponse($request, $response)
    {
        $response->header('X-Resource-Type', 'User');
    }
}
Copier après la connexion

Cet exemple démontre une personnalisation de la réponse API plus complète:

<?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');
        }
    }
}
Copier après la connexion

En tirant parti de la méthode withResponse, vos ressources API évoluent à partir de simples détenteurs de données dans des réponses HTTP entièrement personnalisables, enrichissant votre API avec des métadonnées essentielles aux côtés des données de base.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal