flask api的Swagger文档是在两个不同的url上生成的:一个用于使用flask_restx的路由,另一个用于



请帮忙!

我是Swagger和编写flask api的新手。我们仍在研究最佳实践,所以我需要使用Blueprint和swag_from:

创建一些路由。
from flasgger import swag_from

而我有另一个路由是使用Blueprint和flask_restx包,并有get()和post()方法在它。因此,我的swagger文档被分成两个不同的页面:

a) http://127.0.0.1:5000/apidocs/-用于使用Blueprint和swag_from的路由b)我的Api的根url -用于使用flask_restx的端点

我想将这两个swagger页面合并为一个swagger页面。有办法吗?当使用上述不同的包编写不同的路由时,通常有可能做到这一点吗?

非常感谢!任何关于如何做到这一点的建议都将非常感谢!

…需要使用Blueprint和swag_from创建一些路由…而我有另一个路由是使用蓝图和flask_restx包…我想将这两个swagger页面合并为一个swagger页面。有办法吗?

上述框架都创建内部数据结构,以便为OpenAPI规范生成维护数据。这些内部数据结构不能以任何简单的编程方式合并。

当使用上述不同的包编写不同的路由时,通常有可能做到这一点吗?

除了非常特殊的情况(一些包在设计上意味着要一起工作,例如;Flasgger +flask-restful)通常不可能将多个解决方案合并为一个。

你也可以完全解除OpenAPI规范文档的捆绑,自己发布所有路由的规范,而不管它们在后台是由哪个包处理的。

非常感谢!任何关于如何做到这一点的建议都将非常感谢!

很难指出任何真正的最佳实践,因为在REST API世界中没有太多的标准化。我会坚持一般的经验法则"保持简单,保持安全"。并且只使用一种解决方案。

或者,你可以研究其他可用的库和框架,并找到第三个选项,将满足所有项目的需求。

另外,如果您知道如何自定义承载swagger文档的url路由,

  • flaskgger——https://github.com/flasgger/flasgger#customize-default-configurations参见specs_route配置选项
  • flask_restx——https://flask-restx.readthedocs.io/en/latest/swagger.html#customization参见doc参数

最新更新