请问 Flask 生成 Swagger UI 有什么方便的方法吗?

如题,网上搜索了下,一部分是手写配置文件,还有一部分用到了flask-restplus框架,感觉都不是很方便。

以前我也找过,到目前为止估计没有什么方便的库,很多高级方法都需要手写配置的。

还有一个扩展:flasgger,可以试试。

1 Like

没理解错的话,你的意思是想生成 Swagger UI。就我目前的了解,这要看你 spec 文件的编写方式:

1. Design / Spec first(手写 spec)

如果是 Design / Spec first 的话,那么基本就是手写配置,然后用 Connexion。如果不想手动写基础代码,可以考虑用 Swagger Codegen / OpenAPI Generator 之类的代码生成工具来从 spec 文件生成服务器端代码。

2. 从 Marshmallow Schema 生成 spec(手写少量 spec)

如果用 Marshmallow/Webargs 的话,那基本就是用 APISpec 来生成 spec 文件(仍然需要写一点点 spec,也就是 path 部分的定义),这之后有很多选择:

其实直接手动引入 Swagger UI / Redoc 也不算特别麻烦……

3. 完全自动生成 spec

如果想完全自动生成 spec,可以考虑下面这些扩展,它们都内置了 Swagger UI / Redoc 支持:

1 Like