Les ressources API de Laravel enveloppent les réponses dans une clé «données» par défaut. Bien que utile pour de nombreux scénarios, parfois une structure de réponse plus plate est nécessaire et vous pouvez désactiver l'enveloppe des ressources comme celle-ci.
<!-- Syntax highlighted by torchlight.dev --><?php namespace App\Providers; use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { public function boot(): void { JsonResource::withoutWrapping(); } }
Voici un exemple de la façon dont cela fonctionne lorsque vous avez withoutWrapping
:
<!-- Syntax highlighted by torchlight.dev --><?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 ] ]; } }
Exemple de réponse avec emballage désactivé:
<!-- Syntax highlighted by torchlight.dev -->[ { "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" } } ]
Cette implémentation fournit une structure d'API plus propre tout en maintenant la flexibilité pour personnaliser les formats de réponse en fonction des besoins de votre application.
L'enveloppement des ressources peut être désactivé à l'échelle mondiale tout en conservant un contrôle granulaire sur la structure de réponse de votre API, ce qui entraîne des points de terminaison plus intuitifs et plus faciles à consommer.
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!