如何移除Swagger Editor/UI生成的CURL中的-d参数?
解决Swagger Editor/UI生成POST接口CURL命令时多余
-d参数的问题 在Swagger Editor加载OpenAPI 3.0 YAML定义后,测试无请求体的POST /query接口时,生成的CURL命令会自动添加-d ''参数,这会导致InfluxDB无法正常处理请求,正确的CURL命令需要去掉该参数。
问题原因
Swagger默认会为POST请求生成请求体相关参数,即使接口定义中未声明请求体,它也会默认添加空请求体对应的-d ''参数。
解决方法
在OpenAPI的POST接口定义中显式声明该接口不需要请求体,具体操作是在post节点下添加requestBody字段,明确指定required: false且不定义任何请求内容:
修改后的完整接口定义如下:
/query: post: tags: - "Work with InfluxDB" summary: Read info from Influx (v1) security: - influx: [] # 新增该字段声明无请求体 requestBody: required: false parameters: - name: org description: Org name required: true in: query schema: type: string default: influx readOnly: true - name: pretty description: Prettier output flag required: true in: query schema: type: string default: true - name: db description: DB Name in: query schema: type: string default: influx readOnly: true - name: q description: InfluxQL code in: query schema: type: string default: select * from connection responses: '200': description: Data from Influx read '401': description: | Unauthorized access to Influx. Did you forget to authorize? servers: - url: http://localhost:84
添加requestBody: { required: false }后,Swagger Editor/UI会识别该POST接口不需要请求体,生成的CURL命令就不会包含多余的-d ''参数了。
内容的提问来源于stack exchange,提问作者vbulash
相关产品推荐
相关产品推荐

