如何使用OpenAPI(Swagger)描述动态表单数据?
我正在尝试为此如何使用OpenAPI(Swagger)描述动态表单数据?,swagger,multipartform-data,openapi,Swagger,Multipartform Data,Openapi,我正在尝试为此多部分/表单数据请求创建OpenAPI定义: curl -X POST \ http://localhost:1234/api/v1/Submit \ -H 'cache-control: no-cache' \ -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \ -H 'sessionkey: kjYgfORsZ0GeiCls0FcR7w=
多部分/表单数据请求创建OpenAPI定义:
curl -X POST \
http://localhost:1234/api/v1/Submit \
-H 'cache-control: no-cache' \
-H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
-H 'sessionkey: kjYgfORsZ0GeiCls0FcR7w==' \
-F item1=abc \
-F item2=def
-F item3=ghi
...
我的API定义如下:
post:
消耗:
-多部分/表单数据
生产:
-应用程序/json
参数:
-in:formData
名称:项目1
类型:字符串
-in:formData
名称:项目2
类型:字符串
它适用于formData中的固定字段
但是,我的表单数据将是动态的,我需要能够发送任意键和值
我尝试更改表单参数以使用数组和附加属性
,但它没有产生所需的结果:
-in:formData
模式:
其他属性:
类型:对象
...
-in:formData
类型:数组
项目:
类型:字符串
可以用不同的键和值定义动态表单数据吗?可以使用OpenAPI 3.0定义动态表单数据,但不能使用OpenAPI 2.0(Swagger 2.0)。OpenAPI 2.0仅支持表单数据中的固定键名称
在OpenAPI 3.0中,您可以使用带有附加属性的模式来描述动态表单数据
:
openapi:3.0.2
...
服务器:
-网址:'http://localhost:1234/api/v1'
路径:
/提交:
职位:
请求主体:
必填项:true
内容:
多部分/表单数据:
模式:
#对象属性对应于表单字段
类型:对象
其他属性:
类型:字符串
响应:
'200':
描述:好的
在Swagger UI中测试请求时,以JSON格式输入字段名称和值:
{
"field1": "value1",
"field2": "value2",
"field3": "value3"
}
Swagger UI将这些值作为单个表单字段发送:
是否有一种方法可以表示多部分/表单数据的任意键,以及格式:binary
是否允许用户上传任意键文件?我尝试了附加属性
,但没有成功。它只是认为它们是弦。忽略了格式:二进制
。