ADr*_*ger 8 rest restful-authentication
我有一个基于REST的服务,用户可以返回自己的书籍列表(这是一个私人列表).
该URL目前是 ../api/users/{userId}/books
每次调用时,他们还将提供先前提供的身份验证令牌.
我的问题是:
提供userIdURL冗余?当我们通过每个呼叫获得令牌时,我们可以找出正在执行呼叫的用户并返回他们的书籍列表.这userId不是严格要求的.
删除userId破解REST原则/users/books/看起来应该返回所有用户的所有书籍?
我是否应该咬住子弹并根据令牌对它们进行身份验证,然后检查令牌是否属于同一个userId?
您可以me在URL中使用以引用当前用户.通过这种方法,你将有一个网址为:/users/me/books.
提供
userIdURL冗余?当我们通过每个呼叫获得令牌时,我们可以找出正在执行呼叫的用户并返回他们的书籍列表.这userId不是严格要求的.
你可以考虑这样做:/users/me/books.其中me指当前用户.它更容易理解/users/books,可以用来返回用户的所有书籍.
为了一些灵活性,/users/me/books你可以支持/users/{userId}/books.
URL /users/me可用于从当前用户返回数据.许多API,例如StackExchange,Facebook,Spotify和Google+都采用这种方法.
删除
userId破解REST原则/users/books/看起来应该返回所有用户的所有书籍?
我认为它不会破坏任何REST原则,但我认为您的资源不会被正确地限制.正如我上面回答的那样,我会使用/users/me/books并支持/users/{userId}/books.
我是否应该咬住子弹并根据令牌对它们进行身份验证,然后检查令牌是否属于同一个
userId?
当使用userIdURL来请求来自用户的私人信息时,检查令牌是否属于userIdURL中包含的用户是没有害处的.