我试图使用Swagger来记录一个API POST调用,它有一个对象数组参数。但是当我试图在Swagger UI中测试它时,似乎explode:true
在encoding:filters
中被忽略了。这是我的代码:
openapi: 3.0.2
info:
description: >-
My API
version: 1.0.0
title: My API
tags:
- name: myApi
description: my API
paths:
/myApi/getList:
post:
tags:
- myApi
summary: gets a list
description: gets a list
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
sourceId:
type: integer
description: the source id
filters:
type: array
items:
$ref: '#/components/schemas/Filter'
encoding:
filters:
contentType: application/json
explode: true
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
type: string
'500':
description: error
components:
schemas:
Filter:
type: object
properties:
field:
type: string
description: the name of the field for this filter
selection:
type: array
items:
type: string
description: the name of a selected value of the filter field
required: [attribUniqueName, selection]
sourceId: 1
filters: [
{
"field": "product",
"selection": ["Prod A", "Prod B"]
},
{
"field": "country",
"selection": ["USA", "France"]
}
]
sourceId=1&filters={"field":"product","selection":["Prod A","Prod B"]},{"field":"country","selection":["USA","France"]}
sourceId=1&filters={"field":"product","selection":["Prod A","Prod B"]}&filters={"field":"country","selection":["USA","France"]}
反而?
OpenAPI 3.0.2“Encoding Object”文档指出,如果请求体媒体类型不是application/x-www-form-urlencoded,则“忽略explode
属性”。但是我们在这里使用的是application/x-www-form-urlencoded。或者文档是不是错误的,它应该声明“内容类型当前对象”而不是“请求体媒体类型”?但是,我会假设得到一个真实的数组作为参数值,I。E.
sourceId=1&filters=[{"field":"product","selection":["Prod A","Prod B"]},{"field":"country","selection":["USA","France"]}]
如果有关系的话:我使用的是Swagger UI3.24.3版本。
您的代码看起来不错,实际问题是Swagger UI还不支持编码
。
有关GitHub的相关问题请参见此处。它有一个字符串数组的例子,而不是像您的例子中的对象数组,但可能只要它对字符串不起作用,它对对象也不起作用。
我试图爬过craiglist的论坛类别。组织机构(https://forums.craigslist.org/).我的蜘蛛: 我通过错误回调收到以下消息: [失败实例:Traceback:: /usr/local/lib/python2.7/site-packages/twisted/internet/defer.py: 455:回调 /usr/local/lib/python2.7/site-p
我正在用POST动词调用REST服务。动态构造请求后正文。在某些情况下,很少有字段会填充空值。即使我将我的请求pojo与JsonInclude(Include.NON\u NULL)或JsonInclude(JsonInclude.Include.NON\u NULL)一起使用,也不会删除空值字段。 我的示例请求如下所示。 我自己构造requestEntity,在发布之前不解析它。 如何在具有nu
问题内容: 我刚刚从jQuery 1.3.2更新到1.4.3,并且在发出AJAX DELETE请求时看到了一些新行为。由于某种原因,在我的参数中传递的数据没有发送到服务器。例如: 最终向发送了DELETE请求,没有其他数据。但是,这种类型的调用可以很好地传递参数: 有没有其他人看到过类似的行为?有没有理由不再起作用(即:是设计使然,还是错误)?关于如何使其运作的任何建议? 此外,如果有人想知道为什
我有一个REST API使用POST调用来创建记录,我希望在POST调用中传递某些对象,如果缺少任何东西,我必须直接拒绝它们的唯一, 但是,当使用丢失的属性进行Post调用时,我可以在MongoDB中创建一个条目,我不想保留它,因为这不是一个正确的请求,@validation对我来说不起作用,我正在使用spring boot 2.0.6和MongoDB 4.0.4,任何帮助都非常感谢。提前感谢
很好的一天! 我的应用程序使用简单的http客户端-服务器通信,通过客户端的凌空库建立。首先,我启动一个授权请求: 之后,我请求列出与当前用户相关的设备列表。此时,我收到了来自响应标题的cookei。auth请求的完整标头响应输出: 缓存控制——没有存储,没有缓存,必须重新验证,后检查=0,预检查=0 在身份验证请求的onResponce回调中,我将Set Cookie值作为sessionId,并
我在下面试过了 我以为我会得到0,3,6...但是,我得到了0,1,2,3...因为Flowable最初得到的是。