API Resource - шар трансформації між Eloquent-моделлю та JSON-відповіддю. Дає повний контроль над структурою API, відв'язуючи її від схеми БД.
class PostResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'id' => $this->id,
'title' => $this->title,
'author' => UserResource::make($this->whenLoaded('author')),
'createdAt' => $this->created_at->toIso8601String(),
];
}
}
return PostResource::collection($posts);
whenLoaded()додає зв'язок лише якщо він eager-завантажений (без N+1).- Resource Collections дозволяють додавати метадані (
meta,links).