ibrahim JsonResource::toArray($request)
şeklinde toArray yöntemi mevcut Request'i içeri alıyor. Bu durumda içeride Illuminate\Http\Request dahilindeki yöntemleri kullanarak giriş yapmış kullanıcı, host ya da query string ile gelen değerlere göre bazı işlemler yapabilirsiniz. Mesela:
public function toArray($request)
{
$data = [...];
if($request->user()->isAdmin()) {
$data = [...];
}
if($request->filled('param')) {
$data = [...];
}
return $data;
}
Bu JsonResource::make($resource)
yaptığınızda çok sorun değil ama JsonResource::collection($resource)
yaptığınızda her bir kayıt için tekrarlanacağını unutmayın. Ben bu tür işlemlerde eğer çok karışacak ve bana sorun çıkaracak olursa durumu tartıp ona göre ayrı bir resource oluşturuyorum.
ibrahim Api resource kullanırken client’ın kullanmadığı Fieldlar’ı Response’dan nasıl kaldırabiliriz?
GraphQL aslında bu sorunu çözüyor ama RESTful API GraphQL yanında çocuk oyuncağı kadar basit kalıyor; GraphQL anladığım kadarıyla uygulanması zor bir yapı...