下拉菜单在Swagger与Flask (restx)



我正在用flask-restx库构建我的第一个API。我用它来生成带有注释的API的Swagger文档。我目前有一个post方法的一些字段,但它们都默认接受字符串输入,你必须在Swagger ' Try it out '中键入它们的值。我如何使它们成为下拉列表,以便用户从中选择输入参数?

我目前使用以下装饰符为我的命名空间:

@ns.route('/')
@ns.param('param_1', 'param1')
@ns.param('param_2', 'param2')
@ns.param('param_3', 'param3')
class EndpointName(Resource):

我在post方法中解析它们,像这样

parser = reqparse.RequestParser()  # initialize
parser.add_argument('param_1', type=str, required=True)
parser.add_argument('param_2', type=str, required=True)
parser.add_argument('param_3', type=int, required=True)
args = parser.parse_args()

它们目前在swagger中作为输入字段呈现。我该如何让它们下拉菜单中有特定的值可供选择呢?我应该在decorator中添加一些东西吗?在解析器中设置不同的类型?

谢谢。

代替使用@ns.param('param_1', 'param1'),您可以使用@ns.expect(parser)@ns.expect(parser, validate=True)来启用有效载荷验证,并在parser.add_argument中给出choices

parser = reqparse.RequestParser()
parser.add_argument('param_1', type=str, required=True, choices=("yes", "no"))
...

@ns.route('/')
@ns.expect(parser)
class EndpointName(Resource):
args = parser.parse_args()
...

相关内容

  • 没有找到相关文章

最新更新