laravel swagger 에서 enum value 표시하는 방법

Updated on

#[OAT\Property(property: 'state', ref: '#/components/schemas/State', type: 'enum')]
<?php

declare(strict_types=1);
namespace App\Enums;

use OpenApi\Attributes as OAT;

#[OAT\Schema(type: 'integer')]
enum State: int
{
    case CANCEL = 0;
    case WAIT = 1;
    case SUCCESS = 2;
    case FAILED = 3;
    case ERROR = 4;
}
<?php

declare(strict_types=1);
namespace App\Enums;

use OpenApi\Attributes as OAT;

#[OAT\Schema(type: 'string')]
enum State: string
{
    case CANCEL = 'CANCEL';
    case WAIT = 'WAIT';
    case SUCCESS = 'SUCCESS';
    case FAILED = 'FAILED';
    case ERROR = 'ERROR';
}

#[OAT\Schema(type: 'integer')] 을 설정하게 되면,
php swagger docs 에서 0, 1, 2, 3, 4 가 노출이 되고.

#[OAT\Schema(type: 'string')] 을 설정하게 되면,
php swagger docs 에서 CANCEL, WAIT, SUCCESS, FAILED, ERROR 가 노출 된다.