在flasgger中包含外部yml文件

时间:2019-07-31 17:42:45

标签: python-3.x swagger flasgger

我想使用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"

definitions.yml

User:
  type: string

somefile.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支持吗?

2 个答案:

答案 0 :(得分:1)

您可以导入文件

definitions:
  import: "./definitions.yml"

答案 1 :(得分:0)

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