You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中使用Swagger/OpenAPI注解描述Cookie报错,原因何在?

问题原因及解决方法

出现这个语法错误的核心原因主要有两个:

  • Doctrine Annotations版本不兼容
    旧版本的Doctrine Annotations(低于1.13版本)不支持在注解参数内部嵌套另一个@开头的注解。你在@OA\Cookie内部直接使用@OA\Schema的写法,会让解析器误认为@OA\Cookie的参数还未结束,却意外遇到了新的注解起始符@,从而抛出语法错误。

  • 注解写法不符合解析规则
    部分OpenAPI注解的旧版本实现,要求将Schema定义直接作为属性值传入,而非嵌套独立的@OA\Schema注解。

解决办法

  1. 升级Doctrine Annotations版本
    将Doctrine Annotations升级到1.13及以上版本,该版本开始支持嵌套注解的解析逻辑,你的原有写法就能正常工作。

  2. 调整注解写法
    如果暂时无法升级依赖,可以修改@OA\Cookie的写法,把Schema的定义直接整合到schema属性中:

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

内容的提问来源于stack exchange,提问作者Caio Ladislau

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 03:30:00