2016-10-20 87 views
7

在我的API文檔中,我想定義每個API端點所需的安全性。該項目定義了確定哪些用戶可以訪問API的角色和權限。 Swagger記錄這些信息的最佳方式是什麼?有關如何展示這些細節的最佳做法或建議?如何在Swagger中定義角色/權限安全性

這是我嘗試使用securityDefinitions和角色的自定義變量,但是當我通過swagger2markup運行它或使用swagger- UI。

"securityDefinitions": { 
    "baseUserSecurity": { 
      "type": "basic", 
      "x-role-names": "test" 
     } 
    } 

記錄每個端點的角色和權限信息的最佳方式是什麼?

回答

2

如果您的API使用oAuth身份驗證,則可以使用此範圍。在Swagger/OpenApi中沒有標準的方法來對抗基本認證,因此您仍然使用供應商擴展(像Swagger-UI或swagger2markup這樣的工具無法解釋,就像您找到的那樣),或者包括信息爲summarydescription屬性中的文字。

您可以定義多個securityDefinitions所有類型basic並且每個角色使用一個,但這有點破解。

另請參閱本期的文章https://github.com/OAI/OpenAPI-Specification/issues/1366,其中提出了將範圍擴展到其他安全方案的建議。

+0

我看規範中的說明,但沒有看到大綱。哪個版本可用?無論哪種方式,不幸的是,那些似乎只顯示在通用安全塊中,而不是每個API調用都會更加理想。 它看起來像swagger2markup允許使用基本的範圍來定義範圍,但是違背規範,所以我可以「破解」它讓它更像我希望的 - 但仍然不理想。 – whatsTheDiff

+0

對不起,我正在考慮'摘要'而不是'概要',這將在操作層面,但不是securityDefinition。 – MikeRalphson