2012-07-09 54 views
3

比方说,我有一个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%的时间内使用。

回答

2

你可以把它放在任何一个地方,或两者兼而有之。你的应用程序的需求应该决定这个选择。

关于您提出的设计更重要的事实是,您的各个位置对象不包含URI,以便客户端导航到每个位置以获取有关它们的更多详细信息。

相反,您只包含一个ID,这可能是您期望客户端用于构建位置特定的URI?如果是这样,你应该强烈考虑为每个位置的负载添加一个完整的URI(比如“link”或“href”)。如果没有这种方法,你会将你的客户与你的URI结构联系起来,并使你系统的未来发展变得更加困难。仅供参考,这种方法通常被称为HATEOAS(超媒体作为应用程序状态引擎)。