簡體   English   中英

rest api 設計 URL 設計

[英]rest api design URL design

假設“玩家”是 JS 客戶端應用程序(Angular)中的主要和唯一用戶。 如果他/她想查看個人資料數據 (app.com/my-profile)。 您認為后端服務器的 rest api 應該是什么樣子,為什么?

  1. "api/players/{playerID}/profile"

    或者

  2. api/players/my-profile帶有在標頭中發送的 playerID。

換句話說,后端的rest api應該是通用的,還是應該知道它唯一的js客戶端的設計?

我們是否應該將 js 客戶端及其后端視為唯一的應用程序? 還是兩個單獨的應用程序?

我已經看到了兩種方式。 有幾點需要考慮:

  1. 如果玩家 ID 很敏感,您不希望它們出現在路徑中。 您也不希望它們在 header 中,至少未加密。

  2. 如果不在路徑中,並且您緩存響應並且多個玩家可以使用同一個客戶端,那么您需要考慮使用 HTTP 變化 header 以避免一個玩家獲取另一個玩家的配置文件(來自緩存)。

  3. 我同意關於 API 可發現性的評論。 如果后端通過“鏈接”告訴前端什么是 URL(例如,參見 HAL 的方法),則無需擔心“js 客戶端的設計”。 期望是客戶端從服務中獲取鏈接。 即“如果你想獲得玩家的個人資料,這里是你使用的鏈接”。

  4. 如果期望 id 不在路徑中,那么最好讓服務來控制它,例如,通過將 id 放入 cookie 中,這樣它肯定會在后續請求中取回它,而客戶端不會甚至不需要知道。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM