【问题标题】:symfony2: documentation generated by NelmioApiDocBundle shows an additional routesymfony2:由 NelmioApiDocBundle 生成的文档显示了一条附加路线
【发布时间】:2014-07-07 12:43:44
【问题描述】:

我正在使用 NelmioApiDocBundleFOSRestBundle 创建 API。

在我的 routing.yml 中,我已将 prefix 设置为 /api

ApiController类中的路由配置如下:

/**
* @Get("/login/{username}/{password}")
* @ApiDoc(
*   description="User Loggin",
*   resource=true,
*   parameters={
*     {"name"="username", "dataType"="string", "required"=true, "description"="Username"},
*     {"name"="password", "dataType"="string", "required"=true, "description"="Password"},
*   }
* )
*/
public function loginAction($username, $password)
{
   // ...
}

我的问题是生成的文档显示了这些两条路线:

  • /api/login/{username}/{password}
  • /login/{username}/{password}

我只想显示前缀为/api 的路由。

我怎样才能做到这一点?

【问题讨论】:

    标签: php symfony routing fosrestbundle


    【解决方案1】:

    NelmioApiDocBundle 可能不知道您的 routing.yml 中的 prefix 设置。

    由于包通常需要注释,您应该改为在类级别添加 @Prefix 注释。

    use FOS\RestBundle\Controller\Annotations\Prefix;
    
    /**
     * @Prefix("/api")
     */
    class ApiController
    

    实施更改后不要忘记清除缓存。

    【讨论】:

    • 无效 ;) 但我找到了解决方案,我覆盖了模板并手动检查 uri 是否包含 /api
    【解决方案2】:

    我找到了解决方案,我覆盖了 NelmioBundle 的模板 resources.html.twig 并手动检查 uri 是否包含 /api

    【讨论】:

    • 这是一个非常肮脏的解决方法 - 不是真正的解决方案。根据我的个人经验,NelmioApiDocBundle 绝对能够处理路由前缀。
    猜你喜欢
    • 2018-11-11
    • 2016-04-19
    • 2015-11-27
    • 2020-06-03
    • 2013-11-23
    • 2012-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多