假設我們有兩種用戶,管理員和標準用戶。通過用戶權限篩選RESTful API中的資源的最佳方式是什麼?
我們有一個名爲post
的資源。對於GET方法,我希望管理員查看所有帖子,但標準用戶只能查看post.created_by={currentUserID}
的帖子。
現在我有三個選項:
使用
/api/post
和/api/mypost
。上面是我可以很容易地控制返回的結果,並根據用戶範圍分配不同的權限。缺點是我會重複這些代碼和文檔。使用
/api/post
兩種,而對於標準的用戶,如果沒有?createdBy={id}
它則拒絕該請求。對於兩者都使用
/api/post
,但該方法的行爲會因認證而異。對於標準用戶,返回的列表總是被過濾。對於/api/post/{id}
,它將爲不屬於用戶的帖子返回HTTP 403。
我應該選擇哪一個?