我在我的烧瓶项目中使用Swagger documentation来记录端点和参数。
要定义我正在执行的端点的查询参数:
@api.doc(params={
'name_query_parameter': 'Description'})
我想知道该参数是否有可能在文档中显示为“必需”,就像该参数是路径(home/name_query_parameter/something/something
)的一部分时一样。
查看文档,我仅发现以下内容:
@api.expect()
@api.doc(body=the_defined_payload)
但这意味着要在主体上显示信息,我不能通过GET请求获得该信息。另外,我希望它作为查询参数,而不是有效负载的一部分。
这有可能吗?
谢谢。
答案 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