子集合的REST习语?

时间:2010-06-26 16:19:52

标签: rest idioms

我对REST的理解(公认仅限于wikipedia page)是GET集合的成语是../resource/,而项目是../resource/itemId

是否有GET子集合的标准习惯用法?例如,如果集合中的项目具有某些状态切换(例如状态A, B, C, D),并且我希望能够请求状态为B的项目,那么是否存在标准/通用/最佳 - 练习这样做的方法吗?

如果没有,我现在正在摆弄以下语法选项:

../resource/B

../resource/state/B

../resource?state=B

你看到了哪些利弊?

2 个答案:

答案 0 :(得分:1)

你想在那里使用第三个,除了复数(因为你得到的不止一个)

../resources?state=B

因为它准确地描述了你想要的东西。您GET具有特定州的资源。

../resource/B

表示您获得了B

唯一标识的特定资源

../resource/state/B

表示您获得的资源state属于resource,由B唯一标识。

如果您处理有限数量的状态,另一种选择是将状态设置为资源,并使资源成为该状态的子资源。那么你会有

states/B/resources

答案 1 :(得分:0)

REST约束实际上并没有说明如何命名资源。 REST只是说资源应该有一个名字。

话虽如此,杰米的回答可能是最明显的做法。您可以将命名URL与命名过程进行比较,没有正确和错误的方法,只有一些名称比其他名称更明显。