Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 到子资源的REST映射_Java_Rest_Model View Controller - Fatal编程技术网

Java 到子资源的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

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

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