restTemplate
Last updated
Last updated
Spring 3.0 ๋ถํฐ ์ง์
HTTP ์๋ฒ์์ ํต์ ์ ๋จ์ํํ๊ณ RESTful ์์น์ ์งํค๋ HTTP ํต์ template์ด๋ค. RESTful ํด๋ผ์ด์ธํธ๋ HTTP Method(GET, POST, PUT, DELETE, HEAD, OPTIONS)๋ฅผ ๋ชจ๋ ์ง์ํ๋ค. ๊ฒฐ๊ณผ๋ ๋ฌธ์์ด ๊ทธ๋๋ก ๋ฐ์ ์๋ ์์ผ๋ฉฐ, Converter๋ฅผ ์ด์ฉํด Object๋ก ๋ณํํ ์ ์๋ค.
Synchronous API
๊ธฐ๊ณ์ ์ด๊ณ ๋ฐ๋ณต์ ์ธ ์ฝ๋๋ฅผ ์ต๋ํ ์ค์ฌ์ค๋ค.
RestTemplate์ org.springframework.http.client
ํจํค์ง์ ์์ผ๋ฉฐ, HttpClient ๋ฅผ ์ถ์ํํด์ HttpEntity์ json, xml ๋ฑ ์ ๊ณตํด์ค๋ค.
์ดํ๋ฆฌ์ผ์ด์
์ด RestTemplate
์ ์์ฑํ๊ณ , URI, HTTP Method ๋ฑ์ header ๋ด์ ์์ฒญ
RestTemplate
์ HttpMessageConverter
๋ฅผ ์ฌ์ฉํ์ฌ requestEntity
๋ฅผ ์์ฒญ๋ฉ์ธ์ง๋ก ๋ณํ
RestTemplate
์ ClientHttpRequestFactory
๋ก ๋ถํฐ ClientHttpRequest
๋ฅผ ๊ฐ์ ธ์ ์์ฒญ
ClientHttpRequest
๋ ์์ฒญ๋ฉ์ธ์ง๋ฅผ ๋ง๋ค์ด HTTP ํ๋กํ ์ฝ์ ํตํด ์๋ฒ์ ํต์
RestTemplate
๋ResponseErrorHandler
๋ก ์ค๋ฅ๋ฅผ ํ์ธ
ResponseErrorHandler
๋ ์ค๋ฅ๊ฐ ์๋ค๋ฉด ClientHttpResponse
์์ ์๋ต๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ ์ฒ๋ฆฌ
RestTemplate
๋ HttpMessageConverter
๋ฅผ ์ด์ฉํด ์๋ต๋ฉ์ธ์ง๋ฅผ java object(Class responseType) ๋ก ๋ณํ
Method | HTTP | ์ค๋ช |
exchange | any | HTTP header setting ๊ฐ๋ฅ, ResponseEntity๋ก ๋ฐํ |
execute | any | Request/Response ์ฝ๋ฐฑ์ ์์ ๊ฐ๋ฅ |
getForObject | GET | Java Object๋ก ๋ฐํ |
getForEntity | GET | ResponseEntity๋ก ๋ฐํ |
postForLocation | POST | java.net.URI ๋ก ๋ฐํ |
postForObject | POST | Java Object๋ก ๋ฐํ |
postForEntity | POST | ResponseEntity๋ก ๋ฐํ |
delete | DELETE | HTTP DELETE ๋ฉ์๋๋ฅผ ์คํ |
headForHeaders | HEAD | ํค๋์ ๋ชจ๋ ์ ๋ณด๋ฅผ ์ป์ ์ ์์ผ๋ฉด HTTP HEAD ๋ฉ์๋๋ฅผ ์ฌ์ฉ |
put | PUT | HTTP PUT ๋ฉ์๋๋ฅผ ์คํ |
patchForObject | PATCH | HTTP PATCH ๋ฉ์๋๋ฅผ ์คํ |
optionsForAllow | OPTIONS | ์ฃผ์ด์ง URL ์ฃผ์์์ ์ง์ํ๋ HTTP ๋ฉ์๋๋ฅผ ์กฐํ |
๊ทธ ์ค์ HTTP header๋ฅผ ์ค์ ํ ์ ์๋ exchange
์ ๋ํด์ ์์ธํ ์์๋ณผ ๊ฒ์ด๋ค.
๋ค์๊ณผ ๊ฐ์ด HttpHeaders
๋ก header ๊ฐ๋ค์ ์ค์ ํ ์ ์๋ค. headers๋ HttpEntity
์ ๋ณด๋ด์ค ํ๋ผ๋ฏธํฐ์ ํจ๊ป ์ค์ ํด์ค๋ค.
UricomponentsBuilder
๋ ์ฌ๋ฌ๊ฐ์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฐ๊ฒฐํด ํ๋์ URI๋ก ๋ง๋ค์ด ๋ฐํํด์ค๋ค.
requestBody ๊ฐ์ผ๋ก ๋ณด๋ด์ค ํ๋ผ๋ฏธํฐ๋ค์ Map<>
์ผ๋ก ๊ฐ์ ๋ฐ์ดํฐ ํํ์ ๋ง๊ฒ ์์ฑํด์ค๋ค.
์ด์ HttpEntity
์ headers์ requestBody ๊ฐ์ฒด๋ฅผ ๋ด์์ค๋ค.
๋ง์ฝ timeout์ ์ค์ ํ๋ ค๋ฉด HttpComponentsClientHttpRequestFactory
๊ฐ์ฒด๋ฅผ ์์ฑํด ์ค์ ํ ์ ์๋ค.
RestTemplate
์ผ๋ก ์ด์ HTTP ํต์ ์ ํ ์ ์๋ค.