REST api中项目的用户特定数据

时间:2017-04-01 20:09:28

标签: rest api stateless

在REST api中,处理项目的用户特定数据的最有效方法是什么?

例如,假设有item个资源可供人们使用。可以通过以下方式访问项目列表:

https://myservice.com/api/items (Full list)
https://myservice.com/api/items/{id} (Single item)

返回

{
  { 'name': 'name 1' },
  { 'name': 'name 2' },
}

每个项目都可以受到用户的青睐(https://myservice.com/api/user/{id}),这些收藏的列表将在以下位置提供:

https://myservice.com/api/user/{id}/favorites

这整个设置是无状态的;但是,可能有数百个收藏夹,并且可能不需要检索完整列表。

问:在维护无状态系统的同时,将项目与用户特定数据结合起来的最佳方法是什么?

即。获取用户特定的项目列表是明智的还是合理的:

https://myservice.com/api/items?user={id}
{
  { 'name': 'name 1', 'isFavourite':true },
  { 'name': 'name 2', 'isFavourite':false },
}

1 个答案:

答案 0 :(得分:0)

  

在维护无状态系统的同时,将项目与用户特定数据结合起来的最佳方法是什么?

考虑一下如何在网站上进行操作。那是你在REST中的表现方式;你只需要使它具有机器可读性。

  

这整个设置是无状态的;但是,可能有数百个收藏夹,并且可能不需要检索完整列表。

在这种情况下,您可以跨多个资源分发列表,然后使用paging帮助使用者找到返回列表下一页/上一页的资源。

  

获取用户特定的项目列表

是明智的还是合理的

是的,当然。要认识到的关键思想是您的REST API是集成域的一部分;您假装一个充满"网页"的网站,并将您对网络资源的操纵转化为您应用中的操作/查询。