我正在构建API并使用以下方法执行POST请求:
public ResponseEntity<ProjectRequest> createProject(ProjectRequest project) {
ProjectResponse projectResponse = new ProjectResponse();
PersonMember personMember = new PersonMember();
String personResponse = restTemplate.postForObject(PERSON_URL, project.getPersonMember(), String.class);
System.out.println(personResponse);
return new ResponseEntity<ProjectRequest>(HttpStatus.CREATED);
}
但是,将personResponse作为String使用是不方便的,因为我无法轻松地从响应中提取值,例如personID,firstName等。
使用responseEntity时,使用键/值对的一种好方法是什么?
答案 0 :(得分:2)
您应该将这项工作留给Spring。
创建某种PersonDto
public class PersonDto {
private String firstName;
private String lastName;
//etc.
//getters and setters
}
然后将响应映射为PersonDto
:
ResponseEntity<PresonDto> response = restTemplate
.postForEntity(PERSON_URL, project.getPersonMember(), PersonDto.class);
PersonDto presonDto = response.getBody();
答案 1 :(得分:1)
这可能有帮助:
Spring: return @ResponseBody "ResponseEntity<List<JSONObject>>"
使用批注(@ResponseBody ResponseEntity)并使用JSON作为响应对象可以回答您的问题。
答案 2 :(得分:0)
每当您将POJO传递给ResponseEntity时,Spring都会将其转换为Json。因此,请尝试为您的PersonResponse创建一个POJO(如果尚未创建POJO),然后将该对象直接传递给ResponseEntity。它应该看起来像这样:
class PersonResponse{
long id;
String name;
String description;
//Getters and setters for the fields.
}