如何发送 json 中的 2 个实体进行休息

How send 2 entity in json for rest

我正在尝试这样做: @POST @Path("/add") @Consumes(MediaType.APPLICATION_JSON) void addStudentInCourse(DtoCourse course, DtoStudent student); 但这不起作用: `PUT http://localhost:8080/university/api/v1/study/ 内容类型:application/json

{ “课程”: { “编号”:1 }, “学生”: { “编号”:5 } }` 我如何在我的 json

中打磨 2 个实体

您不能像您希望的那样发送两个对象,因为您的请求的整个主体都是一个对象,因此,您应该创建一个具有两个所需参数的“包装对象”。 考虑到这一点,我的建议是根据以下代码创建一个请求 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 } 
}`

Ps.: 只需仔细检查 http 方法。在您的请求中,您使用的是 PUT,而在您的方法中,您使用的是 @POST 注释