Swagger 3.0切换requestBody的类型,按路径
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swagger 3.0切换requestBody的类型,按路径相关的知识,希望对你有一定的参考价值。
我正在使用swagger 3.0。根据Swagger send body and formData parameter和swagger 2.0 specifications,对于同一操作,type:body
和type:formData
不能同时存在。那很有意义,我想知道是否有一种方法可以根据路径切换requestBody?当store为path1
时,requestBody将内容与application/json
一起使用;存储为path2
,requestBody将内容与multipart/form-data
一起使用;
/customs/store:
post:
description: Customs server calls Nomad to receive the filing result of one
order
operationId: post_customs_callback
parameters:
- description: ID of the store.
explode: true
in: path
name: store
required: true
schema:
type: string
style: simple
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties: # Request parts
openReq:
type: string
# application/json:
# schema:
# type: string
description: Order details
答案
OpenAPI规范没有办法根据特定的参数值来更改请求/响应主体。但是,在您的方案中,可以改为使用两个非参数化路径– /customs/path1
用于JSON请求,/customs/path2
用于多部分请求。
openapi: 3.0.0
...
paths:
/customs/path1:
post:
...
requestBody:
required: true
content:
application/json:
schema:
...
/customs/path2:
post:
...
requestBody:
required: true
content:
multipart/form-data:
schema:
...
以上是关于Swagger 3.0切换requestBody的类型,按路径的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot + Swagger + Swagger UI 和 @RequestBody 具有数据类型 String
Swagger (Springfox) 仅查找 Controller @RequestBody (Spring Boot) 中使用的模型