2017-06-14 114 views
0

我正在開發一個Grails REST應用程序。我有三個用戶角色:BusinessOwner,用戶,管理員,公共(未驗證)什麼是REST API和用戶角色設計最佳實踐?

我已經喜歡api/business/1端點。

當BusinessOwner角色的用戶調用,它返回一個企業的所有細節,但如果與公衆(未驗證)用戶角色調用,它返回的細節的一個子集。 所以,問題是如何實現端點:

1有一個端點像api/business/1並檢查用戶的角色是什麼,回到正確的價值觀(幾個if/else語句,....)

OR

2-具有單獨的API領域,如下列其中每個都有它自己特定的安全,並返回特定子集:

api/admin/business/1

api/businessOwner/business/1

api/public/business/1

哪一個更好?和

設計REST API和應用用戶角色的最佳做法是什麼?

+0

選項1.這將允許在可用角色的變化容易vs選項2。 – bassmartin

回答

0

身份驗證和授權

我認爲一個URL的不應該規定或根據授權,否則單獨的Web服務。對於格式良好的RESTful服務,令牌應該在HTTP頭中發送(如OAuth 2.0中所發生的)。

大多數成熟的基於REST框架將內置有一個授權流程。據我所知,他們沒有實現不同的URL相同的服務作爲授權機制

相關問題