【发布时间】:2021-08-17 02:52:02
【问题描述】:
在有关参数序列化的 OpenAPI 文档中,有一小节介绍了如何序列化具有不同样式的查询、路径、标头和 cookie 参数。这些参数的模式被描述为 OpenAPI 风格的 json 模式,它允许对象和数组的无限嵌套。我没有在文档中找到任何关于如何处理这些的提及:
https://swagger.io/docs/specification/serialization/
假设为任何参数提供的 JSON 模式如下所示:
{
"type": "object",
"properties": {
"foo": {
"type": "object",
"properties": {
"bar": "string"
}
}
}
}
意味着它允许 JSON 中的结构,例如:
{
"foo": {
"bar": "hello"
}
}
或类似的嵌套数组概念:
{
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
}
}
}
允许这样的结构(至少在 JSON 中):
[["a"], ["b"]]
我的问题:
- 根据 OpenAPI 规范是否允许路径、查询等参数?
- 如果是,是否有任何文档说明如何以规范允许的不同样式序列化这些文件?
- 如果没有,官方文档中是否有提及?
我之所以问这个问题是因为我正在开发需要与 OpenAPI 规范兼容的工具,并且我想知道我在这里可以期待哪些参数格式。我完全意识到拥有巨大的嵌套对象并尝试在 url 中序列化它们并不是最聪明的主意。不过我对 OpenAPI 规范允许的内容很感兴趣。
【问题讨论】:
标签: json swagger openapi query-parameters path-parameter