Flask Swagger文档查询参数GET必需

时间:2018-12-03 17:17:16

标签: flask swagger

我在我的烧瓶项目中使用Swagger documentation来记录端点和参数。

要定义我正在执行的端点的查询参数:

@api.doc(params={
    'name_query_parameter': 'Description'})

我想知道该参数是否有可能在文档中显示为“必需”,就像该参数是路径(home/name_query_parameter/something/something)的一部分时一样。

查看文档,我仅发现以下内容:

@api.expect()
@api.doc(body=the_defined_payload)

但这意味着要在主体上显示信息,我不能通过GET请求获得该信息。另外,我希望它作为查询参数,而不是有效负载的一部分。

这有可能吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

最终的解决方案如下,这要感谢Mikhail对解析器的评论。不过我不得不承认,文档并不是最适合烧瓶剩余的。

我使用了 params 部分,以确保字段与说明以及用于自定义验证的解析器一起出现在文档中,并且即使该字段位于URL中也可以根据需要显示该字段作为参数。

parser = reqparse.RequestParser()
parser.add_argument('superimportant', 
type=inputs.boolean, location='args', required=True)
parser.add_argument('something', type=custom_validation_parser, location='args')

class MySuperClassResource(Resource):
@api.doc(parser=categories_by_retailer_parser,
         params={"superimportant": "Description of this important field",
                 "something": "bla bla"
                 })
def get(self, blable):
    parser.parse_args()
    pass

custom_validation_parser 只是一种允许自定义验证的方法,例如用于空值。该方法的格式如下。 (它必须返回要访问的值,如果出现问题,请引发 ValueError )。

def custom_validation_parser(value):
    if not value:
        raise ValueError("Must not be empty.")
    return value