假设我们有以下服务器资源:REST API使用GET PARAMS
api.example.com/event/1
它返回一些任意的资源,说:
{
id: 1,
details: {
type: 'webinar',
....
},
attendees: [
{
user_id: 1,
first_name: 'Bob'
...
},
...
]
}
为客户做出的请求可能是有用的只获取事件的事件细节,而不是与会者列表。
如果客户端需要这两种资源,为资源提供两个单独的URL并强制两个单独的请求是否更好?
api.example.com/event/{event_id}
api.example.com/attendees/{event_id}
或者是更好地提供相同的两个端点,而是选择性地具有第一个支持GET参数去切换与会者上市或关闭
api.example.com/event/{event_id}?listAttendees={true|false}
api.example.com/attendees/{event_id}
凡listAttendees
参数将不得不该表示返回与会者列表或不。
是否允许GET参数更改从特定URL返回的表示形式?
客户是否想要一个没有事件详细信息的参加者列表? – Centinul 2014-10-31 00:18:13
我会为两个不同的URS,因为它完全符合REST,并且您要求两种不同的资源,可以通过两个不同的URI进行标识。 – 2014-10-31 00:20:16
@Centinul您可能想要缓存事件详细信息和与会者列表。例如,如果事件详细信息不会改变,但与会者列表可能会改变。 – moesef 2014-10-31 18:27:34