Как использовать аннотации Swagger/OpenAPI в PHP для описания файла cookie?

При использовании приведенного ниже блока для создания документации swagger:

/**
 * @OA\Get(
 *     path = "/api/users",
 *     summary = "...",
 *     @OA\Response(
 *         response = "200",
 *         description = "...",
 *         @OA\Cookie(
 *             name = "my_cookie",
 *             description = "...",
 *             @OA\Schema(
 *                 type = "string"
 *             )
 *         )
 *     )
 * )
 */

Я получаю сообщение об ошибке, похожее на:

[Syntax Error] Expected Doctrine\Common\Annotations\DocLexer::T_CLOSE_PARENTHESIS, got '@' in...

Что может быть не так?

Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
0
0
71
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Согласно документации OpenAPI, когда вы хотите описать файл cookie, отправленный с ответом, вы должны описать его через заголовок Set-Cookie.

Затем вы можете реализовать это с помощью аннотаций OA:

    /**
     * @OA\Get(
     *     path = "/api/users",
     *     summary = "...",
     *     @OA\Response(
     *        response = "200",
     *        description = "...",
     *        @OA\Header(
     *            header = "Set-Cookie",
     *            @OA\Schema(
     *                  type = "string",
     *                  example = "Some value"
     *            )
     *        )
     *    )
     * )
     */

Вы должны переместить аннотацию @OA\Cookie на верхний уровень блока документации.

/**
 * @OA\Get(
 *     path = "/api/users",
 *     summary = "...",
 * )
 *
 * @OA\Cookie(
 *     name = "my_cookie",
 *     description = "...",
 *     @OA\Schema(
 *         type = "string"
 *     )
 * )
 */

Я столкнулся с синтаксической ошибкой: [Синтаксическая ошибка] Ожидаемая Doctrine\Common\Annotations\DocLexer::T_CLOSE_PARENTHESIS, но получено '('. Если я уберу это из блока, документация не появится.

Caio Ladislau 31.05.2023 16:03

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