[英]rest api design URL design
假設“玩家”是 JS 客戶端應用程序(Angular)中的主要和唯一用戶。 如果他/她想查看個人資料數據 (app.com/my-profile)。 您認為后端服務器的 rest api 應該是什么樣子,為什么?
"api/players/{playerID}/profile"
。
或者
api/players/my-profile
帶有在標頭中發送的 playerID。
換句話說,后端的rest api應該是通用的,還是應該知道它唯一的js客戶端的設計?
我們是否應該將 js 客戶端及其后端視為唯一的應用程序? 還是兩個單獨的應用程序?
我已經看到了兩種方式。 有幾點需要考慮:
如果玩家 ID 很敏感,您不希望它們出現在路徑中。 您也不希望它們在 header 中,至少未加密。
如果不在路徑中,並且您緩存響應並且多個玩家可以使用同一個客戶端,那么您需要考慮使用 HTTP 變化 header 以避免一個玩家獲取另一個玩家的配置文件(來自緩存)。
我同意關於 API 可發現性的評論。 如果后端通過“鏈接”告訴前端什么是 URL(例如,參見 HAL 的方法),則無需擔心“js 客戶端的設計”。 期望是客戶端從服務中獲取鏈接。 即“如果你想獲得玩家的個人資料,這里是你使用的鏈接”。
如果期望 id 不在路徑中,那么最好讓服務來控制它,例如,通過將 id 放入 cookie 中,這樣它肯定會在后續請求中取回它,而客戶端不會甚至不需要知道。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.