我在理解将REST模式应用于对象和子对象的完美方法时遇到了一些麻烦。
让我们考虑以下课程:

class Foo {
    Long id;
    Bar bar;
}

class Bar {
    Long id;
    String name;
}


据我了解,在简单情况下,我们有:


Foo对象列表-.../foos
一个Foo对象-.../foos/{id}


现在,我在理解访问子对象将如何工作方面遇到问题。如果我想获取Foo对象(其中Bar对象具有name == baz),那将是正确的

.../foos/bar/name/baz还是/foos?barName=baz

我应该使用哪个映射通过参数Barname中提取Foo对象?是.../foos/bar/{name}还是其他?

最佳答案

主要问题是:您要请求哪种资源?对于您的情况,您需要一个foos列表,因此URI将为/foos句点。其余约束必须以其他方式设置。

然后,您要筛选返回的列表,以便仅检索具有特定foosbar。这可以通过参数:/foos?barName=someName完成。

以下是一些常见的网址:


GET /foos:列出所有foos
GET /foos/{id}:获取特定的foo
GET /bars:列出所有bars
GET /bars/{id}:获取特定的bar
GET /foos/{id}/bars:获取特定bars的所有foo
GET /foos/{id}/bars/{id}:获取特定bar的特定foo(与GET /bars/{id}相同,但限制性更强)

关于java - REST到子资源的映射,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34068679/

10-13 09:33