NelmioApiDocBundle不起作用“规范中未定义任何操作!”

时间:2018-09-05 07:59:56

标签: symfony symfony-3.4 nelmioapidocbundle

我想将nelmio用于symfony-project,但这不起作用。

总是说:规范中未定义任何操作!

我还在https://symfony.com/doc/current/bundles/NelmioApiDocBundle/index.html

上尝试了该示例

怎么了?有什么想法吗?

routing.yml

app.swagger_ui:
    path: /api/doc
    methods: GET
    defaults: { _controller: nelmio_api_doc.controller.swagger_ui }

config.yml

nelmio_api_doc:
    areas:
        path_patterns: # an array of regexps
        - ^/api(?!/doc$)
        host_patterns:
        - ^api\.

控制器

/**
 * @Route("/api/test", methods={"GET"})
 * @SWG\Response(
 *     response=200,
 *     description="Returns the rewards of an user"
 * )
 * @SWG\Parameter(
 *     name="order",
 *     in="query",
 *     type="string",
 *     description="The field used to order rewards"
 * )
 */
public function testAction()
{

}   

composer.json

"symfony/symfony": "3.4.*",
"nelmio/api-doc-bundle": "3.2.1",

3 个答案:

答案 0 :(得分:2)

如果任何命令事件(通常为post-install-cmd或post-update-cmd)触发ScriptHandler :: installAssets脚本,则通常由composer安装资产。如果尚未设置此脚本,则可以手动执行以下命令:

php bin /控制台资产:安装--symlink

答案 1 :(得分:1)

只需删除

host_patterns:
    - ^api\.

并在

中设置您的虚拟主机
documentation:
  host: symfony.localhost

答案 2 :(得分:0)

问题出在config.yml路径模式中。如果删除配置(所有nelmio_api_doc)或更改路径模式将起作用。示例:

nelmio_api_doc:
    areas:
        default:
            path_patterns: [ /api/ ]