Java 到子资源的REST映射
我在理解将REST模式应用于对象和子对象的完美方法时遇到一些困难。 让我们考虑以下类:Java 到子资源的REST映射,java,rest,model-view-controller,Java,Rest,Model View Controller,我在理解将REST模式应用于对象和子对象的完美方法时遇到一些困难。 让我们考虑以下类: class Foo { Long id; Bar bar; } class Bar { Long id; String name; } 据我所知,在简单的情况下,我们有: Foo对象列表-../foos 一个Fooobject-../foos/{id} 现在我无法理解访问子对象将如何工作。如果要获取Foo对象,其中Bar对象具有name==baz 这是../foos/bar
class Foo {
Long id;
Bar bar;
}
class Bar {
Long id;
String name;
}
据我所知,在简单的情况下,我们有:
Foo
对象列表-../foos
Foo
object-../foos/{id}
Foo
对象,其中Bar
对象具有name==baz
这是../foos/bar/name/baz
还是/foos?barName=baz
我应该使用哪个映射通过参数从
Foo
中提取Bar
对象name
?。那将是../foos/bar/{name}
还是其他什么?主要问题是:您请求的是哪种资源?在本例中,您需要一个foos
列表,因此URI将是/foos
,句号。其余的约束必须以其他方式设置
然后,您希望过滤返回的列表,以便只检索带有特定条的foos
。这可以通过一个参数来实现:/foos?barName=someName
以下是一些常见的URL:
GET/foos
:列出所有foos
GET/foos/{id}
:获取特定的foo
GET/bar
:列出所有bar
GET/bar/{id}
:获取特定的bar
GET/foos/{id}/bar
:获取特定foo的所有bar
GET/foos/{id}/bar/{id}
:获取特定foo
的特定bar
(与GET/bar/{id}
相同,但更具限制性)
检查这个问题的答案:因为我不清楚,你能为我的具体情况提供答案吗?然后,你想过滤返回的列表,以便只检索带有特定条的foo。这可以通过参数:/foos?barName=someName来完成。
因为参数只是Bar
类型,不是更好吗:GET…/foos/Bar?name=sample
?