REST API设计:如何定位所有资源的属性

时间:2016-06-23 18:00:57

标签: api rest

假设我们有以下GET:

/agents <--returns all agents
/agents/5 <-- returns data for agent id 5
/agents/5/status <-- returns status for agent 5

我如何编写RESTful URI来获取所有代理的状态?由于其他资源也具有状态,因此不具有/ status。我想要像:

/agents/*/status <-- never seen this

但找不到类似的东西。现在我有这个:

/misc/agentsstatus <-- not pretty

更新: 怎么样:

/agents <--returns all agents
/agents(5) <-- returns data for agent id 5
/agents(5)/status <-- returns status for agent 5
/agents/status <-- returns status for all agents

1 个答案:

答案 0 :(得分:0)

  

我如何编写RESTful URI来获取所有代理的状态?

REST并不关心拼写 - 这纯粹是一种URI设计问题。

请参阅:https://softwareengineering.stackexchange.com/questions/270898/designing-a-rest-api-by-uri-vs-query-string

如果你想让URI的拼写与人类读者交流语义,你可以证明

/agents?embed=agent.status
  

当前代理程序集合的表示形式,包括代理程序状态的表示

/agents/agent.status
  

从属于当前代理程序集合的当前agent.status资源集合的表示

/agents/digest
  

当前代理商集合的摘要表示

/reports/agentStatusReport
  

当前agentStatusReport的表示