iT邦幫忙

2022 iThome 鐵人賽

DAY 12
0
自我挑戰組

Spring In Action系列 第 12

RestTemplate

  • 分享至 

  • xImage
  •  

這篇來介紹API client的程式,Spring提供了RestTemplate這個類別,其內定義好了諸多實用的方法來call API,不過主要分成三種方法簽章:

1.傳入String URL以及直接傳入vararg所需參數

public Ingredient getIngredientById(String ingredientId) {
  return rest.getForObject("http://localhost:8081/ingredients/{id}",
                           Ingredient.class, ingredientId);
}

2.傳入String URL,並將參數整理為Map

public Ingredient getIngredientById(String ingredientId) {
  Map<String, String> urlVariables = new HashMap<>();
  urlVariables.put("id", ingredientId);
  return rest.getForObject("http://localhost:8081/ingredients/{id}",
      Ingredient.class, urlVariables);
}

3.傳入一個URI物件,URI內會包含要打的URL和參數

public Ingredient getIngredientById(String ingredientId) {
  Map<String, String> urlVariables = new HashMap<>();
  urlVariables.put("id", ingredientId);
  URI url = UriComponentsBuilder
            .fromHttpUrl("http://localhost:8081/ingredients/{id}")
            .build(urlVariables);
  return rest.getForObject(url, Ingredient.class);
}

而常用的方法除了getForObject,會將response body轉譯為object外,還有getForEntity會回傳ResponseEntity,其內會包含諸如header之類的其他http資訊。

若要打POST,可以用postForObject,或是postForLocation會回傳一個URI物件。


上一篇
RESTful API in Spring & Spring Data REST
下一篇
OAuth2
系列文
Spring In Action30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言