RestTemplate

최승아·2021년 11월 18일
0
post-thumbnail

1. RestTemplate 정의/특징 및 부가적인 설명

정의

  • 스프링에서 제공하는 http 통신에 유용하게 쓸 수 있는 템플릿
  • Spring 3부터 지원 되었고 REST API 호출 이후 응답 받을 때까지 기다리는 동기방식
  • HTTP 서버와의 통신을 단순화하고 RESTful 원칙을 지킴
  • jdbcTemplate 처럼 RestTemplate도 기계적이고 반복적인 코드들을 깔끔하게 정리해줌 👉 요청보내고, 요청받는데 몇줄 안될 정도!

특징

  • 기계적이고 반복적인 코드를 최대한 줄여줌
  • RESTful 형식에 맞춤
  • json, xml를 쉽게 응답 받음

REST란 ?

  • 어떤 자원에 대해 CRUD 연산을 수행하기 위해 URI(Resource)로 요청을 보내는것으로 Get, Post들의 방식(Method)을 사용하여 요청을 보내며, 요청을 위한 자원은 특정한 형태로 표현됨
  • 그리고, 이러한 REST 기반의 API를 웹으로 구현한 것이 RESTful API인데 👉 예를 들어, 우리는 게시글을 작성하기 위해 http://localhost:8080/board 라는 URI에 POST 방식을 사용하여 JSON 형태의 데이터를 전달할 수 있음
  • 위와 같이 CRUD 연산에 대해 요청을 할 때, 요청을 위한 Resource(자원,URI)와 이에 대한 Method(행위, POST) 그리고 Representation of Resource(자원의 형태, JSON)을 사용하면 표현이 명확해지므로 👉 이를 REST라 한다.
  • 이러한 규칙을 지켜서 설계한 API를 REST API 또는 RESTful한 API라고 함

URI과 URL의 차이점은 ?

URL

  • URL은 Uniform Resource Locator로 인터넷 상 자원의 위치를 의미
  • 자원의 위치라는 것은 결국 어떤 파일의 위치를 의미

URI

  • 반면, URI는 Uniform Resource Identifier로 인터넷 상의 자원을 식별하기 위한 문자열의 구성으로, URI는 URL을 포함하게 됨
  • 그러므로 URI가 보다 포괄적인 범위라고 할 수 있음

2. RestTemplate의 동작원리

  • RestTemplate은 HttpClient을 추상화(HttpEntity의 json, xml 등)해서 제공
  • 따라서, 내부 통신(HTTP 커넥션)에 있어서는 Apache HttpComponents를 사용
  • 만약, RestTemplate가 없었다면, 직접 json, xml 라이브러리를 사용해서 변환해야 했을 것

3. 사용하기

3.1 주요 메소드

3.2 요청할 URL

1.UriComponentsBuilder로 파라미터를 붙이거나 String.format로 붙임

2.(/user/{id}, ... , "redboy") 처럼 rest하게 넘길 수도 있음
3.map을 이용해서 더 깔끔하게 할 수도 있음


참조 : 1. RestTemplate (정의, 특징, URLConnection, HttpClient, 동작원리, 사용법, connection pool 적용) | https://sjh836.tistory.com/141 [빨간색코딩] 2. [Server] Restful API란? | https://mangkyu.tistory.com/46

profile
⭐ 개발 정리 공간 ⭐

0개의 댓글