laravel resource swagger schema 설정
Updated on
use OpenApi\Attributes\Items;
use OpenApi\Attributes\Property;
use OpenApi\Attributes\Schema;
/** @property-read CompanyData $resource */
#[Schema(
properties: [
new Property(property: 'id', type: 'int', example: 1),
new Property(property: 'name', type: 'string', example: '반짝보석'),
new Property(property: 'number', type: 'string', example: '010-1111-2222'),
new Property(property: 'company_licenses', properties: [
new Property('name', type: 'string', example: '반짝이는 보석'),
new Property('business_number', type: 'string', example: '111-22-33333'),
]),
new Property(property: 'company_contacts', type: 'array', items: new Items(CompanyContactResource::class)),
]
)]
class CompanyResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'id' => $this->resource->id,
'name' => $this->resource->name,
'number' => $this->resource->number,
'company_licenses' => new CompanyLicensesResource($this->resource->whenLoaded('company_licenses')),
'company_contacts' => CompanyContactResource::collection($this->resource->company_contacts),
];
}
}laravel 에서 resource 작업할때 자동완성 및 swagger schema 설정하는 방법이다.