3

我想使用 NelmioApiDocBundle 自动生成文档。我使用标准 Symfony 文档来安装和配置它:https ://symfony.com/doc/current/bundles/NelmioApiDocBundle/index.html 。不幸的是,当我转到 /api/doc 时,我的文档是空的。

我在 v. 3.2.0 中使用 Symfony 3.4 和 NelmioApiDocBundle。

这是我的配置:

nelmio_api_doc:
    areas:
        path_patterns: # an array of regexps
            - ^/api(?!/doc$)
        host_patterns:
            - ^api\.
    documentation:
        host: 127.0.0.1
        schemes: [http, https]
        info:
            title: Thanatos API
            description: This is documentation of Thanatos
            version: 1.0.0
        security:
            - Bearer: []

和我的控制器中的注释(一开始我想在我的文档中查看任何数据):

/**
 * @Route(
 *  "/",
 *  name="thanatos_dashboard_index", 
 * )
 *
 * @SWG\Response(
 *     response=200,
 *     description="Returns the rewards of an user",
 *     @SWG\Schema(
 *         type="array",
 *         @SWG\Items(ref=@Model(type=Reward::class, groups={"full"}))
 *     )
 * )
 * @SWG\Parameter(
 *     name="order",
 *     in="query",
 *     type="string",
 *     description="The field used to order rewards"
 * )
 * @SWG\Tag(name="rewards")
 * @NelmioSecurity(name="Bearer")
 */
public function indexAction()
{
    return $this->render("@AppThanatos/Dashboard/index.html.twig");
}

在 /api/doc 中,我看到“规范中未定义任何操作!”。我究竟做错了什么?


@更新

我刚开始使用 Sami:http ://symfony.com/projects/sami

4

3 回答 3

0

我有同样的问题。在我的 Mac 上工作我总是ERR_EMPTY_RESPONSE(使用 Chrome),但在生产环境中,相同的配置工作正常。

唯一的区别是 Xdebug,我尝试禁用该模块,现在一切正常。

于 2018-06-05T09:17:06.247 回答
0

post-install-cmd如果任何命令事件(通常或post-update-cmd)触发ScriptHandler::installAssets脚本,则资产通常由作曲家安装。如果你还没有设置这个脚本,你可以手动执行这个命令:

php bin/console assets:install --symlink
于 2018-09-07T01:24:09.973 回答
-2

尝试这个 :

代替

 * @Route(
 *  "/",
 *  name="thanatos_dashboard_index", 
 * )

经过

 @Rest\Get("/getVehicles")

并且,在您的动作控制器中,返回数组或对象,如下所示:

    $em = $this->getDoctrine();
    return $em->getRepository('AppBundle:Vehicle')->findAll();
于 2018-06-01T15:27:29.800 回答