Laravel -Methode bietet eine leistungsstarke Möglichkeit, Ihre API -Antworten zu verbessern. Sie können das HTTP -Antwortobjekt ändern, bevor es an den Client gesendet wird, wobei Sie über einfache Datenanpassungen hinausgehen, um Header, Statuscodes und andere Antwortattribute zu umfassen. withResponse
Hier ist ein grundlegendes Beispiel:
class UserResource extends JsonResource { public function withResponse($request, $response) { $response->header('X-Resource-Type', 'User'); } }
<?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'); } } }
-Methode entwickeln sich Ihre API -Ressourcen von bloßen Dateninhabern in vollständig anpassbare HTTP -Antworten, wodurch Ihre API neben den Kerndaten mit wesentlichen Metadaten angereichert wird. withResponse
Das obige ist der detaillierte Inhalt vonRessourcenantwortanpassung in Laravel -APIs. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!