mar*_*osh 6 json jsonschema swagger openapi
我正在尝试使用OpenAPI记录看起来像的查询字符串
filtered[0][id]=code&filtered[0][value]=12345
Run Code Online (Sandbox Code Playgroud)
并包含具有属性id和的对象列表value。
我的yaml文档如下所示
parameters:
- name: filtered
in: query
description: filters to be applied
explode: true
style: deepObject
schema:
type: array
items:
properties:
id:
description: name of the field to be filtered
type: string
value:
description: value of the filter
type: object
Run Code Online (Sandbox Code Playgroud)
问题如下:看起来该style: deepObject选项仅适用于一个级别,而不适用于我的对象实际所在的第二个级别。也就是说,它需要一个查询字符串,例如
?sorted[0]=%7B%0A%20%20%22id%22%3A%20%22string%22%2C%0A%20%20%22value%22%3A%20true%0A%7D
Run Code Online (Sandbox Code Playgroud)
该对象未使用id和value键序列化为数组。
有办法解决吗?
Hel*_*len 13
从 OpenAPI 3.1 开始这是不可能的
OpenAPI 3.0/3.1 规范目前仅定义了简单对象(具有原始属性)的deepObject行为,例如
{
"id": 5,
"name": "Bob"
}
Run Code Online (Sandbox Code Playgroud)
由于未定义数组和嵌套对象的行为,因此实际上无法描述您的查询字符串。从技术上来说,唯一的办法是定义filtered[0][id],filtered[0][value]等作为单独的查询参数。
| 归档时间: |
|
| 查看次数: |
1504 次 |
| 最近记录: |