为啥自定义路由在 Nelmio API Doc 中出现两次?

Posted

技术标签:

【中文标题】为啥自定义路由在 Nelmio API Doc 中出现两次?【英文标题】:Why does a custom route appears twice in Nelmio API Doc?为什么自定义路由在 Nelmio API Doc 中出现两次? 【发布时间】:2017-04-29 11:02:00 【问题描述】:

我尝试为我的一个 API 定义自定义路由名称,从那时起,API Doc 显示该路由两次。任何想法为什么?

这是我的 API 的定义:

/**
 * @ApiDoc(
 *   description = "Sends the support email to the HelpDesk address",
 *   statusCodes = 
 *     204 = "Returned when successful",
 *     400 = "Returned when the parameters are incorrect",
 *     401 = "Returned when the token is invalid",
 *     500 = "Returned when there's an internal server error"
 *   ,
 *   input="AppBundle\Form\Type\SupportEmailType"
 * )
 * @Post("/support-requests")
 * @Rest\View ()
 */
public function postSupportAction(Request $request)

以下是路线在我的文档中的显示方式:

这是我的routing.yml 文件:

# app/config/routing.yml
app:
    resource: "@AppBundle/Controller/"
    type:     annotation
NelmioApiDocBundle:
   resource: "@NelmioApiDocBundle/Resources/config/routing.yml"
   prefix:   /api/doc
user:
    type:     rest
    resource: AppBundle\Controller\UserController

【问题讨论】:

你能把 routing.yml 的设置也贴出来吗? @AlexandruCosoi 我已经用我的 routing.yml 文件的内容更新了问题 我不记得我上次使用 FOSRestBundle 是什么时候了,但我要废话一句,根据这个问题,你在某处定义了两次路由:github.com/FriendsOfSymfony/FOSRestBundle/issues/813 @Sebastian @Post("/support-requests") 的命名空间是什么? @AlexandruCosoi 这是 Symfony 网站上提到的那个:symfony.com/doc/current/bundles/FOSRestBundle/…,看起来像这样use FOS\RestBundle\Controller\Annotations\Post; 【参考方案1】:

从表面上看,唯一能想到的可能是你的 routing.yml 的第一部分

尝试从您的 routing.yml 中删除它

app:
    resource: "@AppBundle/Controller/"
    type:     annotation

我认为这段代码,以及用户路由的分离定义让 nelmio 看到了两次路由。前段时间我遇到了类似的问题,我认为这就是原因。很抱歉我不得不问这么多问题,但我需要看到完整的画面。

希望对你有帮助,

亚历山德鲁·科索伊

【讨论】:

成功了! :D 一个 mers! 铜 :) 。玩得开心

以上是关于为啥自定义路由在 Nelmio API Doc 中出现两次?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用自定义 JMS 序列化程序处理程序设置 Nelmio Doc

Symfony、nelmio/api-doc-bundle 和 @SWG\SecurityScheme

是否需要 nelmio_api_doc.yaml 中的架构部分?

Nelmio Api Doc Bundle:记录所需参数

Nelmio Api Doc 中的组排除在更新作曲家后不起作用

Nelmio API 文档区域和带有 symfony 4 的不记名令牌