[英]REST API ROUTE PATHS - best practice for authenticated resource?
我有一個用 Laravel 構建的 API,它可以與身份驗證令牌(護照包)一起使用。 我不清楚在經過身份驗證的會話中訪問資源的最佳實踐應該是什么。
讓我解釋。
假設我想以管理員身份查看用戶的訂單,我訪問: /v1/users/5/orders
並且所有訂單都為 ID 5 的用戶列出。
但現在 ID 為 5 的用戶已通過身份驗證。 訪問他自己的訂單資源的 URL 應該是什么?
那會是: /v1/users/5/orders
(並檢查它是管理員還是會話屬於 ID 為 5 的用戶)
或/v1/my/orders
或/v1/my-orders
或/v1/orders
(並使用用戶 5 的會話 ID,- 或在管理員時列出所有結果)
當在同一 URL 上可以列出訂單時,它只會變得混亂,因為管理員想要訪問它。 或者實際上是會話用戶想要看到它們。
我建議使用/v1/orders
,它將顯示基於權限的訂單集合: - 管理會話中的所有訂單 - 屬於經過身份驗證的用戶的訂單,如果是低權限用戶。
添加像/my/orders
或my-orders
這樣的前綴不會帶來任何價值。
對於子集合,我將保留允許管理員訪問用戶訂單的路徑/v1/users/5/orders
orders。
這是一個很好的教程,解釋了 API 資源命名: https : //restfulapi.net/resource-naming/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.