Rest Resftul API结构,如果已从会话令牌派生,则路由中是否需要用户ID?
我目前正在计划一个基于REST原则的web API。我使用一个会话令牌来正确标识用户发出的请求(当然是在身份验证之后),然后确定该用户是否有权访问给定的资源 假设提出请求的用户的Rest Resftul API结构,如果已从会话令牌派生,则路由中是否需要用户ID?,rest,uri,Rest,Uri,我目前正在计划一个基于REST原则的web API。我使用一个会话令牌来正确标识用户发出的请求(当然是在身份验证之后),然后确定该用户是否有权访问给定的资源 假设提出请求的用户的用户ID为7,并且我只想检索他可以访问的演示文稿的列表,那么最佳/适当的做法是: 1.在路由中包括我的用户ID,例如: localhost:55555/api/users/7/演示文稿 或 2.不包括userID,例如: localhost:55555/api/presentations 每个演示文稿都可以被任意数量的其
用户ID
为7
,并且我只想检索他可以访问的演示文稿的列表,那么最佳/适当的做法是:
1.在路由中包括我的用户ID
,例如:
localhost:55555/api/users/7/演示文稿
或
2.不包括userID
,例如:
localhost:55555/api/presentations
每个演示文稿
都可以被任意数量的其他用户访问。出于这个原因,我倾向于选择2,但在我最终确定结构之前,我想知道其他人的想法。REST API的一个非常常见的模式是同时具备以下两种功能:
- 具有可选参数的列表资源,如
/presentation/?by=Alice&since=2013-1-1
- 对象资源,如
/presentation/0AFF56E7
对于演示文稿,我不会使用包含用户ID的复合ID,因为它似乎不是真正需要的,而且它会阻止将来的功能,如更改演示文稿的“所有者”(而不更改其ID)。将资源ID与身份验证令牌/ID分开是一个好方法。经过深思熟虑和进一步研究,你完全符合我的想法。谢谢