0

我有一个 Swagger 中描述的 POST 端点,我希望该端点也有查询参数。我们使用 1.2 swagger 格式是因为,嗯,遗留的原因。我们使用 3scale,它托管文档,您可以在其 Web UI 中编辑您的招摇。但是,当我尝试保存文档时,它给了我以下错误。

JSON Spec can not have paramType='body' and paramType='query' on the same method

我在招摇规范中找不到任何说明这是实际限制的内容。这可能是 3Scale 特有的,还是一般的招摇限制?如果是后者,有人可以指出一个规范来澄清它吗?

实际的 REST 端点并不关心,它对 POST 上的查询参数感到满意。它只是让 Swagger 工具变得快乐。这是 swagger 文档的缩写片段:

{
  "parameters": [
    {
      "name": "myQueryParam",
      "dataType": "string",
      "paramType": "query",
      "required": true
    },
    {
      "name": "body",
      "dataType": "string",
      "paramType": "body",
      "required": true
    }
  ],
  "httpMethod": "POST"
}
4

2 回答 2

0

不确定错误消息是否是通用验证错误,但您共享的规范中有几个错误:

  • 它是“方法”而不是“httpMethod”
  • 它是“类型”而不是“数据类型”

https://github.com/OAI/OpenAPI-Specification/blob/master/versions/1.2.md

于 2020-10-11T16:42:46.527 回答
0

以下示例适用于我,但我使用 required=false:

 {
        "in": "query",
        "name": "myQueryParam",
        "required": false,
        "type": "string"
 }

另请参阅查询和/或正文中的 Swagger 参数

于 2021-12-09T20:51:58.567 回答