我正在尝试使用OpenAPI记录一个查询字符串,它看起来像
filtered[0][id]=code&filtered[0][value]=12345
并包含具有属性 ID
和值
的对象列表。
我的 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
问题如下:它看起来像<code>样式:deepObject</code>选项只适用于一个级别,而不适用于我的对象实际所在的第二个级别。也就是说,它需要一个查询字符串,如
?sorted[0]=%7B%0A%20%20%22id%22%3A%20%22string%22%2C%0A%20%20%22value%22%3A%20true%0A%7D
对象未序列化为具有id
和值
键的数组。
有办法解决吗?
我知道这是一个老问题,但是从打开 api 3 开始,就支持您正在寻找 https://swagger.io/docs/specification/describing-parameters/#schema-vs-content 的内容。
据报道,Openapi生成器6.0.1修复了一个错误https://github.com/OpenAPITools/openapi-generator/issues/4808
parameters:
- in: query
name: filter
content:
application/json:
schema:
schema:
$ref: "#/components/schemas/Filter"
顾名思义,:),deepObject 样式仅“提供了一种渲染嵌套对象的简单方法”,而不是数组。至少根据版本 3.0.1,它仅适用于对象。
请注意,工具可能还不支持嵌套对象,因为规范“不提供此类示例”。
因此,您的格式与OpenAPI不兼容,但您可以将查询定义为正则表达式后面的参数。我通常会尽力提供一些解释
https://swagger.io/specification/
使现代化显然,在有人要求为嵌套对象提供“描述性错误”消息后,建议在https://github.com/swagger-api/swagger-js/pull/1450遗憾的是,决定不纳入该功能,PR 1450被拒绝。
从OpenAPI 3.1开始这是不可能的
OpenAPI 3.0/3.1规范目前仅为简单对象(具有原始属性)定义深度对象
行为,例如
{
"id": 5,
"name": "Bob"
}
但不适用于数组,也不适用于嵌套对象。
由于数组和嵌套对象的行为未定义,因此实际上无法描述查询字符串。从技术上讲,唯一的方法是将 filtered[0][id]、filtered[0][value]
等定义为单独的查询参数。
问题内容: 如何在Angularjs中使用查询参数构建URL。 我看到了API $ location.search() 问题是$ location(url)是重定向到url。就我而言,我想为查询参数传递url和key:value对,并构建url。就像是 网址: params: 结果: 我喜欢使用该URL进行链接。我也看到了angular encoding ,字符。我可以避免吗? 编辑: 我的意图是
我正在使用Sqlite-pcl从数据库中检索一些数据。当显示结果时,有一个作为整数(等级)返回的某个字段,代表奖杯等级。我想用取决于值的字符串值替换该字段,例如,如果值为0,我想要结果为“铂金”,如果值为1,则值应为“银”。当然,数据库中没有这样的表来保存这些等级的描述,因此我不能使用联接
问题内容: 我有一个HTTP客户端(目前)的Node.js应用程序。所以我在做: 这似乎是完成此任务的一种好方法。但是,我有些沮丧,我必须执行此步骤。这应该由一个公共库封装,但是我还没有看到它存在于node的库中,而且我不确定哪个标准的npm包可以完成它。有没有一种合理使用的更好的方法? url.format方法节省了构建自己的URL的工作。但理想情况下,请求的级别也应高于此级别。 问题答案: 检
我们使用SQL Server数据库。当试图使用27GB内存在具有100M条记录的表上运行查询时,Hibernate会将查询(无论是
问题内容: 您是否知道将Javascript对象编码为可通过请求传递的快速简单的方法? 不,没有其他框架-只是纯Javascript :) 问题答案: 像这样? 编辑:这也将转换递归对象(使用php“ array”表示法作为查询字符串)
我从客户端发送了以下查询字符串参数 在REST服务器中,我如何接收上述格式并正确分配给每个类别? 更新1 参数的值为 {_=[1437904506062],{“take”:75,“skip”:0,“page”:1,“pageSize”:75、“filter”:{“logic”:“and”,“filters”:〔{“field”:“prodCode”,“operator”:“eq”,“value”: