3

我想使用 json 远程引用创建一个单独的 definitions.yml 文件,这样我就可以在多个 YML 文件之间共享定义。

我们按照https://azimi.me/2015/07/16/split-swagger-into-smaller-files.html中的说明将定义部分移动到单独的文件中。最小的 YML 文件如下所示:

api.yml:

responses:
  '200':
    description: "A user."
    schema:
      $ref: "#/definitions/User"
definitions:
  $ref: "./definitions.yml"

定义.yml

User:
  type: string

一些文件.py

from flasgger import swag_from
...
# use BluePrint to specify API
@swag_from('api.yml')

命令

flask run

预期的 localhost:5000/apidocs 结果将具有用于 GET 的完整 API,其中 User 定义为模型。实际结果显示找不到'#/definitions/User',模型丢失。

flasgger 支持这个吗?

4

2 回答 2

2

当前版本的flassger (0.9.3) 不支持包含外部yaml 文件,但是,可以在flask 脚本中或在运行flask 脚本之前对文件进行预处理以包含外部引用。这是连接解决方​​案的示例: https ://github.com/zalando/connexion/issues/254#issuecomment-497194240

于 2019-08-15T14:17:55.400 回答
2

您可以导入文件

definitions:
  import: "./definitions.yml"
于 2020-04-02T08:44:32.363 回答