是否可以枚举资源的所有实例,而无需在一次调用中消除休息原则。
假设我想使用一个电话列举所有学生信息。
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"
}, ]
答案 0 :(得分:2)
这不违反HTTP原则。根据您的尝试,您的资源层次结构是否是一个好主意。这样的设置将具有students
资源,其保存所有学生的数据。然后就不需要个人学生记录(例如GET /students/:id
)。如果返回大量数据,客户端可能会感到恼火,并且它正在将数据处理推送到客户端。假设客户只想要一个学生。它必须解析整个学生群体,忽略所有不相关的数据,才能找到他们想要的学生。当然,如果客户需要所有学生数据,那么这不是问题。
所以真正的问题不在于RESTful这是怎么回事,而是为什么要这样做以及它是否适合您系统的客户端。客户期望的层次结构。如果这适合,那么一定要去。