Swagger аннотации со связанным массивом свойств

Я новичок в PHP Swagger и использую пакет Laravel L5-Swagger для создания документации для моего API. Теперь я пытаюсь разрешить одной модели содержать массив другой модели, так как Order может иметь несколько OrderItems.

К сожалению, я не могу получить ссылку на работу. Смотрите прикрепленный снимок экрана.

Что я делаю неправильно?

Это моя модель заказа:

/**
 * @SWG\Definition(
 *   required={"order_id","order_items"},
 *   type="object",
 *   @SWG\Xml(name="Order")
 * )
 */
class Order
{
    /**
     * @SWG\Property(example="O-789456123")
     * @var string
     */
    public $order_id;

    /**
     * @SWG\Property(type="array", items="$ref:OrderItem")
     * @var array
     */
    public $order_items = [];
}

Это моя модель OrderItem:

/**
 * @SWG\Definition(
 *   required={"sku","quantity", "price_including_tax"},
 *   type="object",
 *   @SWG\Xml(name="OrderItem")
 * )
 */
class OrderItem
{
    /**
     * @SWG\Property(example="SKU-123")
     * @var string
     */
    public $sku;

    /**
     * @SWG\Property(example=2)
     * @var integer
     */
    public $quantity;

    /**
     * @SWG\Property(example=199.75)
     * @var float
     */
    public $price_including_tax;
}

1 ответ

Решение

Я думаю items="$ref:OrderItem" должно быть @SWG\Items(ref="#/definitions/OrderItem")

Ps. Проверка промежуточного формата (swagger.json) может помочь понять, что происходит не так.

Другие вопросы по тегам