[英]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.