3

假设我有一个 RESTful API 方法来返回有关一系列位置的数据:

/地点

[{
  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 最有意义呢?还是/地点?或者也许 /employees/locations?

我担心的是,每次对 /locations 的请求计算employee_count 可能会导致额外的、浪费的开销,因为employee_count 可能仅在5-10% 的时间内使用。

4

1 回答 1

2

你可以把它放在任何一个地方,也可以放在两个地方。您的应用程序的需求应该决定该选择。

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

相反,您只包含了一个 ID,大概您希望客户端使用它来构造一个特定于位置的 URI?如果是这样,您应该强烈考虑将完整的 URI 添加到每个位置的有效负载(例如,“链接”或“href”)。如果没有这种方法,您将把您的客户端与您的 URI 结构耦合起来,并使您的系统的未来发展变得更加困难。仅供参考,这种方法通常称为HATEOAS(超媒体作为应用程序状态的引擎)。

于 2012-07-09T17:55:17.663 回答