【发布时间】:2016-01-19 10:27:30
【问题描述】:
请看这个简单的代码:
final String url = String.format("%s/api/shop", Global.webserviceUrl);
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
HttpHeaders headers = new HttpHeaders();
headers.set("X-TP-DeviceID", Global.deviceID);
HttpEntity entity = new HttpEntity(headers);
HttpEntity<Shop[]> response = restTemplate.exchange(url, HttpMethod.GET, entity, Shop[].class);
shops = response.getBody();
如您所见,上述代码旨在从服务器获取商店列表(以 json 格式)并将响应映射到 Shop 对象数组。 现在我需要 PUT 新商店,例如 /api/shop/1。请求实体应与返回的实体具有完全相同的格式。
我是否应该将 /1 添加到我的 url,创建新的 Shop 类对象,在所有字段中填充我想要放置的值,然后使用 HttpMethod.PUT 进行交换?
请为我澄清一下,我是 Spring 的初学者。代码示例将不胜感激。
[编辑] 我很困惑,因为我刚刚注意到方法 RestTemplate.put()。那么,我应该使用哪一个?交换还是 put()?
【问题讨论】:
-
您可能希望使用 POST 创建新对象,并使用 PUT 更新现有对象。
标签: java json spring put resttemplate