URI时,包括基于REST的响应信息汇总
问题描述:
比方说,我有一个RESTful API方法返回的数据了一系列的位置:URI时,包括基于REST的响应信息汇总
/地点
[{
location_id: 1,
location_name: 'Austin'
},{
location_id: 2,
location_name: 'San Francisco'
},{
location_id: 3,
location_name: 'Seattle'
}]
现在让我们说,我想返回的集合每个地点的employee_count:
[{
location_id: 1,
location_name: 'Austin',
employee_count: 96
},{
location_id: 2,
location_name: 'San Francisco',
employee_count: 71
},{
location_id: 3,
location_name: 'Seattle',
employee_count: 85
}]
那么对于uri最有意义呢?仍然/地点?或者也许/员工/地点?
我担心的是,计算employee_count与每个/地点的请求可能会导致额外的,浪费的开销,因为employee_count只能在5-10%的时间内使用。
答
你可以把它放在任何一个地方,或两者兼而有之。你的应用程序的需求应该决定这个选择。
关于您提出的设计更重要的事实是,您的各个位置对象不包含URI,以便客户端导航到每个位置以获取有关它们的更多详细信息。
相反,您只包含一个ID,这可能是您期望客户端用于构建位置特定的URI?如果是这样,你应该强烈考虑为每个位置的负载添加一个完整的URI(比如“link”或“href”)。如果没有这种方法,你会将你的客户与你的URI结构联系起来,并使你系统的未来发展变得更加困难。仅供参考,这种方法通常被称为HATEOAS(超媒体作为应用程序状态引擎)。