我试图学习如何使用Jersey编写REST风格的应用程序和使用Jersey编写REST风格的应用程序,并且我很努力地理解在将数据发布到资源时如何处理父/子类型 关系。我使用JSON来交换 数据,但我不认为这与我的问题特别相关。REST风格的1-N可选关系
的例子中,我与模型工作的员工和团队 之间的关系。一个雇员可能或可能不,是一个团队的成员:
GET /team/ - returns a list of teams
POST /team/ - creates a new team
GET /team/1 - returns a list of employees in the team with the ID 1
GET /employee/ - returns a list of employees
POST /employee/ - creates a new employee
GET /employee/1 - returns details about the employee with the ID 1
在这背后我有一些休眠注释的POJO:一个用于团队,和一个 为雇员,以两者之间的1-N的关系(请记住, 员工可能不是团队的成员!)。同样的POJO也注释 作为@XmlRootElements使JAXB将允许我将它们传递给/从 客户端为JSON。
两个实体的属性是这样的:
Team
Long id;
String name;
String desc;
List<Employee> employees;
Employee
Long id;
Team team;
String name;
String phone;
String email;
所有好为止。但我努力理解如何让雇员通过 正好路过一个团队的ID,而不是 传递嵌套组对象在我的JSON对象中的一个团队在创建时的成员。
例如,我希望能够调用POST /员工/用JSON是 看起来是这样的:
{
"team_id":"1",
"name":"Fred Bloggs",
"phone":"1234567890",
"email":"[email protected]"
}
但是,相反,我有这样的事情经过:
{
"team":{
"id":"1",
}
"name":"Fred Bloggs",
"phone":"1234567890",
"email":"[email protected]"
}
所以,我的问题是,其他人如何处理在JSON/REST中创建关系而不传递整个对象图?
对不起,这是一个粗略的问题,但正如我所说,我刚刚开始 了,在这个阶段术语对我来说是一个问题!