簡體   English   中英

Swagger 中的下拉菜單和 Flask (restx)

[英]Dropdown menu in Swagger with Flask (restx)

我正在使用 flask-restx 庫構建我的第一個 API。 我用它來生成帶有注釋的 API 的 Swagger 文檔。 我目前有一些用於發布方法的字段,但默認情況下它們都接受輸入作為字符串,您必須在 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 中作為輸入字段呈現。 我將如何 go 讓它們成為具有特定值可供選擇的下拉列表? 我應該在解析器中以不同的方式向裝飾器添加一些東西嗎?

謝謝。

除了使用@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()
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM