0

是否可以在一次调用中枚举资源的所有实例而不会违反休息原则。

假设我想用一个电话枚举所有学生信息。

GET /students

使用 REST 原则,此调用将返回:

"students": [{
   "uri":"/student/1"
},
{
   "uri":"/student/2"

},
]

我想要的是使用一次调用来获取所有数据:

GET /student

 "students": [{     
  "name":"x",    
   "moreInfo":...,
  "uri":"/student/1"
 },
 {    
  "name":"y",   
  "moreInfo":...,
  "uri":"/student/2" 
 }, ]
4

1 回答 1

2

这不会违反 HTTP 原则。根据您要执行的操作,这是否是一个好主意是您的资源层次结构的问题。这样的设置将有一个students资源来保存所有学生的数据。这样就不需要单独的学生记录(例如GET /students/:id)。但是,如果这返回了大量数据,客户端可能会感到恼火,并且它将数据的处理推向客户端。假设客户只想要一个学生。它必须解析整个学生群体,忽略所有不相关的数据,才能找到它想要的一个学生。当然,如果客户需要所有学生数据,那么这不是问题。

所以真正的问题不在于这有多 RESTful,而是你为什么要这样做以及它是否适合你系统的客户端。客户期望的层次结构。如果这适合,那么一定要去做。

于 2013-10-24T11:52:00.827 回答