假设我想获取我的公司在缅因州拥有的所有商店的列表。从概念上讲,这个请求可以被视为
/stores?state=Maine (All stores such that the state of the store is Maine)
或者
/states/Maine/stores (All of Maine's stores)
哪个更 RESTful,为什么?根据我的理解,两者似乎都有其优点和缺点。
编辑:
我最初的例子有一个问题,将商店作为状态的子资源可能没有直观的意义,所以这里有另一个更详细的例子:假设我可以通过 ISBN 来识别全球书籍,或者通过标题来识别每个作者(假设没有作者说出他们的两个自己的书一样)。所以,在这个方案下/books/0-525-94892-9
,/authors/Ayn_Rand/books/Atlas Shrugged
会参考同一本书。因此,如果我想要 Ayn Rand 的所有书籍,我会GET /books?author=Ayn_Rand
还是GET /authors/Ayn_Rand/books
?