1

我正在使用flasgger 编写我的API 文档,我的一个函数同时具有GET 和POST 方法。问题是flasgger 无法区分GET 和POST 方法。我只为 post 方法编写了代码,但它也将该代码与 GET 方法相关联

我附上了显示我编写的代码的图像,您可以看到我在这里编写的代码仅适用于 POST 方法,但它也将其与 GET 方法相关联,如第二张图片所示。

在此处输入图像描述

此图显示了 GET 和 POST 方法的招摇 UI。正如您所看到的,对于 GET 方法,它显示的结果与 POST 方法的结果相同,即使我没有为 GET 方法编写任何内容。

在此处输入图像描述

我想使用 docstring 的方式将 swagger 集成到我的代码中,我该怎么办?

4

1 回答 1

0

Flasgger 实际上能够区分在不同 http 方法上运行的单个函数的文档。但是,它不能从单个文档字符串创建两个单独的文档。此处描述了flasgger文档提供的解决方案:

https://github.com/rochacbruno/flasgger#handling-multiple-http-methods-and-routes-for-a-single-function

@app.route('/api/<string:username>', endpoint='with_user_name', methods=['PUT', 'GET'])
@app.route('/api/', endpoint='without_user_name')
@swag_from('path/to/external_file.yml', endpoint='with_user_name')
@swag_from('path/to/external_file_no_user_get.yml', endpoint='without_user_name', methods=['GET'])
@swag_from('path/to/external_file_no_user_put.yml', endpoint='without_user_name', methods=['PUT'])

...但它需要将文档保存在单独的文件中。

于 2017-08-02T09:24:03.830 回答