Куда поместить @SWG\Definition для повторного использования с пакетом Swagger-PHP и Nelmio API-DOC

Я хотел бы написать где-нибудь @SWG\Definition и ссылаться на него в @SWG\Schema в аннотациях @SWG\Response для нескольких действий REST API в моем приложении Symfony 3. Я использую версию Nelmio api-doc-bundle версии dev-master, но я могу найти что-нибудь, что указывает на то, куда должно идти это определение. Документы Swagger-PHP призывают не повторяться, если это возможно, и я хотел бы следовать этой рекомендации. Любые подсказки?


person Paul Dugas    schedule 27.10.2017    source источник


Ответы (1)


Типично... Наконец, сломайтесь и спросите, а затем найдите решение вскоре после...

Я обнаружил, что могу предварительно загрузить данные документации в Symfony app/config/config.yml.

nelmio_api_doc:
    documentation:
        definitios:
            Error: 
                type: object
                properties:
                    success:
                        type: boolean
                        example: false
                    error:
                        type: string
                        example: message

Теперь я могу использовать что-то подобное во всех своих действиях REST.

/**
 *  @API\Operation(
 *     ...
 *     @SWG\Response(
 *         response="default",
 *         description="Failure",
 *         @SWG\Schema(ref="#definitions/Error")
 *     )
 * )
 */
person Paul Dugas    schedule 27.10.2017
comment
Проблема с этим подходом заключается в том, что, похоже, нет способа инициировать генерацию определений для сущностей с помощью @API\Model(). - person Paul Dugas; 28.10.2017