您好,我有一个休息端点xyz.com/test/create,它希望内容类型为application / json并且内容为
{
"name": "spring boot"
}
具有数组的主体中还有其他一些字段。
我正在spring rest控制器中使用rest模板来达到上述端点,我也想传递数据。我不确定端点端使用哪种域模型将json中的数据从客户端映射到服务器端。
如何使用rest模板将上述数据击中端点,并且Content-Type为application-json。
答案 0 :(得分:1)
为了创建要发送的数据,请使用诸如Map或普通POJO之类的数据类型。 一张地图看起来像:
com.google.common.collect.ImmutableMap.of("name","spring boot")
或者是POJO:
public class dataTransferPOJO {
private String name;
//... NoArgsConstructor, getters, setters ...//
}
使用RestTemplate发送数据
确保您了解Spring Boot的RestTemplate
,并使用POST请求访问端点:
...
dataTransferPOJO payload = new dataTransferPOJO();
HttpEntity<String> entity = new HttpEntity<String>(payload, headers);
HttpEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, entity, dataTransferPOJO.class);
...
Spring Boot将尝试使用 FasterXML的Jackson 来序列化您收到的请求, 您的端点接收器将如下所示:
@RequestMapping(value = "/rawTask", method = RequestMethod.POST)
public AsyncTask newRawTask(@Valid @RequestBody dataTransferPOJO payload) throws Exception {
return atrr.save(payload);
}