2016-08-16 61 views
2

我的web服務API將檢查某個cookie是否包含在請求中,但我無法弄清楚如何將cookie包含到我的swagger doc api調用中。在swagger doc請求中包含cookie

我已經試過兩種方法:

  1. 添加餅乾在我.yaml文件這樣的編輯字段。

    paths: 
        /myApi/create: 
        parameters: 
         - name: Cookie 
         in: header 
         description: cookie 
         required: true 
         type: string 
    
  2. 在招搖UI的HTML文件,添加

    window.authorizations.add(
        "Cookie", 
        new ApiKeyAuthorization("Cookie", 'Name=Val', 'header') 
    ) 
    

但在這兩個辦法我的API沒有得到cookie的,我想知道我怎麼能做到這一點?謝謝!

回答

2

OpenAPI/Swagger spec 2.0不支持cookie身份驗證。對於下一個版本(3.0),討論支持它可以在下面找到:

https://github.com/OAI/OpenAPI-Specification/issues/15

UPDATE:OpenAPI的規格3.0將支持cookiehttps://github.com/OAI/OpenAPI-Specification/blob/OpenAPI.next/versions/3.0.md#parameter-locations

+0

從https://github.com/OAI/OpenAPI-Specification/issues/161,看來我可以「的:標題」實際運用中設置cookie的。我想知道爲什麼我不能在我的方法中做到這一點?順便說一句我把字段值作爲「名稱=值」,但格式不應該是問題,因爲我的api沒有得到任何cookie。謝謝! –

1

也許爲時已晚,但你應該檢查following例如:

swagger: '2.0' 
info: 
    version: '1' 
    title: With Cookie Authentication 
    description: With Cookie Authentication 

securityDefinitions: 
    myCookie: 
    type: apiKey 
    name: Cookie 
    in: header 
paths: 
    /say-hi: 
    get: 
     summary: Say Hello 
     description: Say Hello 
     responses: 
     200: 
      description: OK 
     security: 
     - myCookie: [] 
+1

看來問題在於,由於安全問題,瀏覽器不允許設置稱爲cookie的標頭: 嘗試設置禁止標頭被拒絕:Cookie jquery-1.8.0.min.js – jgato