Veuillez regarder ce code simple:
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();
Comme vous pouvez le voir, le code ci-dessus est destiné à OBTENIR la liste des boutiques à partir du serveur (au format json) et à mapper la réponse au tableau des objets Shop. Maintenant, je dois mettre une nouvelle boutique, par exemple sous/api/shop/1. L'entité de demande doit avoir exactement le même format que celui renvoyé.
Dois-je ajouter/1 à mon URL, créer un nouvel objet de classe Shop, avec tous les champs remplis de mes valeurs que je veux mettre, puis utiliser l'échange avec HttpMethod.PUT?
S'il vous plaît, clarifiez-le pour moi, je suis débutant avec Spring. Un exemple de code serait apprécié.
[edit] Je suis double confus, car je viens de remarquer également la méthode RestTemplate.put (). Alors, lequel dois-je utiliser? Échanger ou mettre ()?
Vous pouvez essayer quelque chose comme:
final String url = String.format("%s/api/shop/{id}", Global.webserviceUrl);
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
HttpHeaders headers = new HttpHeaders();
headers.set("X-TP-DeviceID", Global.deviceID);
Shop shop= new Shop();
Map<String, String> param = new HashMap<String, String>();
param.put("id","10")
HttpEntity<Shop> requestEntity = new HttpEntity<Shop>(shop, headers);
HttpEntity<Shop[]> response = restTemplate.exchange(url, HttpMethod.PUT, requestEntity, Shop[].class, param);
shops = response.getBody();
le put retourne vide alors que l'échange vous obtiendrait une réponse, le meilleur endroit pour vérifier serait la documentation https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/ client/RestTemplate.html