簡體   English   中英

Swagger:不允許在 POST 方法上查詢參數?

[英]Swagger: query params on POST methods not allowed?

我有一個 Swagger 中描述的 POST 端點,我希望該端點也有查詢參數。 我們使用 1.2 swagger 格式,因為,好吧,遺留原因。 我們使用 3scale,它托管文檔,您可以在其 web UI 中編輯 swagger。 但是,當我嘗試保存文檔時,它給了我以下錯誤。

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

我在 swagger 規范中找不到任何說明這是實際限制的內容。 這可能是 3Scale 特有的,還是一般的 swagger 限制? 如果是后者,有人可以指出一個規范來澄清它嗎?

實際的 REST 端點並不關心,它對 POST 上的查詢參數感到滿意。 它只是讓 Swagger 工具感到高興。 這是 swagger 文檔的縮寫片段:

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

不確定錯誤消息是否是通用驗證錯誤,但您共享的規范中有幾個錯誤:

  • 它是“方法”而不是“httpMethod”
  • 它是“類型”而不是“數據類型”

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

以下示例適用於我,但我使用 required=false:

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

另請參閱查詢和/或正文中的 Swagger 參數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM