如何在json中为rest发送2个实体
我正在尝试这样做: @POST@Path/add@consumersmeditype.APPLICATION\u JSON void addstudentincoursedtocoursedtocoursedtocoursedtostudent; 但这不起作用: `放http://localhost:8080/university/api/v1/study/ 内容类型:application/json { 课程:{ 身份证号码:1 }, 学生:{ 身份证号码:5 } }`如何在json中为rest发送2个实体,json,jax-rs,Json,Jax Rs,我正在尝试这样做: @POST@Path/add@consumersmeditype.APPLICATION\u JSON void addstudentincoursedtocoursedtocoursedtocoursedtostudent; 但这不起作用: `放http://localhost:8080/university/api/v1/study/ 内容类型:application/json { 课程:{ 身份证号码:1 }, 学生:{ 身份证号码:5 } }` 如何在我的json中s
如何在我的json中sand 2 entity你不能按你想要的方式发送两个对象,因为你的整个请求都是一个对象,因此,你应该创建一个包含两个所需参数的包装对象。 考虑到这一点,我的建议是创建一个请求dto来包含您的对象,如下代码所示:
public class AddStudentInCourseRequest {
private DtoCourse course;
private DtoStudent student;
// constructor, getters and setters
}
并将您的服务签名更改为:
@POST
@Path("/add")
@Consumes(MediaType.APPLICATION_JSON)
void addStudentInCourse(AddStudentInCourseRequest request) {
DtoCourse course = request.getCourse();
DtoStudent student = request.getStudent();
// remaining business logic
}
这样,您要发送的请求应该可以工作:
{
"course": { "id": 1 },
"student": { "id": 5 }
}`
附:只需再次检查http方法。在您的请求中,您使用的是PUT,而在您的方法中,您使用的是@POST注释,您不能以您想要的方式发送两个对象,因为整个请求主体都是一个对象,因此,您应该创建一个包含两个所需参数的包装对象。 考虑到这一点,我的建议是创建一个请求dto来包含您的对象,如下代码所示:
public class AddStudentInCourseRequest {
private DtoCourse course;
private DtoStudent student;
// constructor, getters and setters
}
并将您的服务签名更改为:
@POST
@Path("/add")
@Consumes(MediaType.APPLICATION_JSON)
void addStudentInCourse(AddStudentInCourseRequest request) {
DtoCourse course = request.getCourse();
DtoStudent student = request.getStudent();
// remaining business logic
}
这样,您要发送的请求应该可以工作:
{
"course": { "id": 1 },
"student": { "id": 5 }
}`
附:只需再次检查http方法。在您的请求中,您使用的是PUT,在您的方法中,您使用的是@POST注释