ガイド
レスポンス
モデルがJSONレスポンスに変換される仕組みについて学びます。
Orionは、Eloquentモデルと、APIクライアントに実際に返されるレスポンスとの間の変換レイヤーとしてAPIリソースを使用します。
これらのクラスが自動的に解決されるようにするには、App\Http\Resources\<model>ResourceまたはApp\Http\Resources\<model>CollectionResourceというパターンに従う必要があります。
たとえば、App\Models\Messageモデルがある場合、関連するリソースクラスはApp\Http\Resources\MessageResourceまたはApp\Http\Resources\MessageCollectionResourceになります。
アプリ内のリソースクラス名がこの命名規則に従っていない場合や、より明示的に指定したい場合は、コントローラーのprotected $resourceまたはprotected $collectionResourceプロパティに、完全修飾リソースクラス名を設定します。
<?php
namespace App\Http\Controllers\Api;
use App\Models\Message;
use App\Http\Resources\CustomMessageResource;
use App\Http\Resources\CustomMessageCollectionResource;
class MessagesController extends ApiController
{
/**
* @var string $model
*/
protected $model = Message::class;
/**
* @var string $resource
*/
protected $resource = CustomMessageResource::class;
/**
* @var string $collectionResource
*/
protected $collectionResource = CustomMessageCollectionResource::class;
}
Orion\Http\Resources\ResourceクラスとOrion\Http\Resources\CollectionResourceクラスの両方で、便利なtoArrayWithMergeメソッドが利用できます。ぜひ確認してみてください。