LaravelのwithResponse
メソッドは、API応答を強化する強力な方法を提供します。 HTTP応答オブジェクトがクライアントに送信される前に変更することができ、ヘッダー、ステータスコード、およびその他の応答属性を含む単純なデータ調整を超えて。
基本的な例:
この例は、より包括的なAPI応答のカスタマイズを示しています:
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'); } } }
以上がLaravel APIでのリソース応答のカスタマイズの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。