Symfony4中NelmioApiDocBundle v3.0导出API文档报错咨询
解决NelmioApiDocBundle v3.0导出API文档的问题
我之前在Symfony 4项目里用NelmioApiDocBundle v3.0的时候也碰到过这个情况——旧版本的api:swagger:dump命令确实用不了了,因为v3.0重构了命令体系,把相关命令挪到了新的命名空间下,但导出功能还是完全支持的,只是换了命令而已。
正确的导出命令
v3.x版本对应的导出命令是nelmio:apidoc:dump,你可以根据需要导出不同格式的文档:
- 导出Swagger JSON格式到指定文件:
php bin/console nelmio:apidoc:dump --format=swagger --output=./swagger.json
- 导出Swagger YAML格式到指定文件:
php bin/console nelmio:apidoc:dump --format=swagger --output=./swagger.yaml
额外参数说明
如果你的API有特定的路由前缀,还可以通过--route-prefix参数过滤需要导出的路由,比如只导出/api开头的接口:
php bin/console nelmio:apidoc:dump --format=swagger --output=./swagger.json --route-prefix=/api
为什么旧命令失效?
NelmioApiDocBundle v3.0对命令结构做了调整,把原来api:swagger命名空间下的命令全部整合到了nelmio:apidoc命名空间下,所以你执行旧命令时会提示找不到对应命名空间。
生成可视化HTML文档
如果需要可视化的HTML文档,你可以把导出的JSON/YAML文件导入到Swagger UI或者ReDoc这类工具中,就能生成直观的可交互API文档了。
内容的提问来源于stack exchange,提问作者Floran
相关产品推荐
相关产品推荐

