繁体   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