次のインターフェイスを備えたRESTfulWebサービスがあるとします。
GET /some/parent
これは次のようなものを返します
[
{
urn: "/some/parent/1",
name: "parent1",
children: [ "/some/child1", "/some/child2" ]
},
{
urn: "/some/parent/2",
name: "parent2",
children: [ "/some/child3", "/some/child4" ]
}
]
そして、私は持っています
GET /some/parent/{id}
これは次のようなものを返します:
{
urn: /some/parent/1,
name: parent1,
children: [
{
urn: "/some/child1",
name: "child1"
},
{
urn: "/some/child2",
name: "child2"
}
]
}
したがって、親のリストを要求すると、すべての親のjson表現が子の壷とともにリストされます。特定の親リソースをリクエストすると、json表現には子json表現のリストが含まれます。
ジャージの場合、一般的な方法は、2つの単純なJavaPojoと1つの単純なリソースを定義することです。
public class Parent {
private String id;
private String name;
private List<String> childIds;
...
@JsonIgnore
public String getId()...
@JsonProperty
public String getUrn()...
}
public class Child {
private String id:
private String name;
...
@JsonIgnore
public String getId()...
@JsonProperty
public String getUrn()...
}
@Path("/some/parent")
@Produces(MediaType.APPLICATION_JSON)
public class ParentResource() {
@GET
public List<Parent> findAll() {
List<Parent> result = // some database query call
return result;
}
@GET
@Path("{id}")
public Parent find(@PathParam("id") String id) {
Parent parent = // some database call
return parent;
}
}
上記のシナリオで子の壷/オブジェクトを注入するにはどうすればよいですか?ベストプラクティスはありますか?これをどのように解決しますか?
ありがとう。