REST API Web Study 정리
- Udemy Spring Guru 님의 RESTful Web Services 수업을 듣고 정리한 내용을 추가하고 있습니다.
Postman
- Postman은 개발한 API를 테스트하고, 테스트 결과를 공유하여 API 개발의 생산성을 높여주는 플랫폼이다. 즉 API 를 여기서 호출해보고 결과를 눈으로 확인해 볼 수 있다.
- 포스트맨 설치 : PostMan 주소
- 테스트 데이터 : JsonPlaceHolder
- 결과
Create Data Model
- JSON to POJO Class Converter : jsonchema2pojo 주소
- User의 JSON 데이터를 입력하고 패키지명과 타입을 설정하면 자동으로 pojo class 내부 데이터까지 자동으로 만들어 준다.
Spring RestTemplate
RestTemplate
- Spring 3부터 지원, REST API 호출 이후 응답을 받을 때 까지 기다리는 동기 방식
- Spring 에서 제공하는 HTTP 통신에 유용하게 쓸 수 있는 메서드를 제공하는 템플릿
RestTemplate 동작 원리
- HttpClient는 HTTP를 사용하여 통신하는 범용 라이브러리
- RestTemplate는 HttpClient를 추상화(HttpEntity의 json,xml 등)해서 제공
-
어플리케이션이 RestTemplate를 생성하고, URI, HTTP 메소드 등의 헤더를 담아 요청
-
RestTemplate는 HttpMessageConverter를 사용하여 RequestEntity를 요청 메세지로 변환
-
RestTemplate는 ClientHttpRequestFactory로 부터 ClientHttpRequest를 가져와서 요청을 보냄
-
ClientHttpRequest 는 요청메세지를 만들어 HTTP 프로토콜을 통해 서버와 통신
-
RestTemplate 는 ResponseErrorHandler 로 오류를 확인하고 있다면 처리로직을 태움
-
ResponseErrorHandler 는 오류가 있다면 ClientHttpResponse 에서 응답데이터를 가져와서 처리
-
RestTemplate 는 HttpMessageConverter 를 이용해서 응답메세지를 java object(Class responseType) 로 변환
-
어플리케이션에 반환
Test Code
@Service
public class ApiServiceImpl implements ApiService {
private final RestTemplate restTemplate;
public ApiServiceImpl(RestTemplate restTemplate) {
this.restTemplate = restTemplate;
}
@Override
public List<User> getUsers(int start, int limit) {
ResponseEntity<List<User>> response =
restTemplate.exchange(
"https://jsonplaceholder.typicode.com/users/?_start=" + start + "&_limit=" + limit,
HttpMethod.GET,
null,
new ParameterizedTypeReference<>() {});
return response.getBody();
}
}
@Test
void getUsers() {
List<User> users = apiService.getUsers(0, 3);
Assertions.assertEquals(3, users.size());
}
Author And Source
이 문제에 관하여(REST API Web Study 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@donsco/REST-API-Web-Study-정리
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
RestTemplate
- Spring 3부터 지원, REST API 호출 이후 응답을 받을 때 까지 기다리는 동기 방식
- Spring 에서 제공하는 HTTP 통신에 유용하게 쓸 수 있는 메서드를 제공하는 템플릿
RestTemplate 동작 원리
- HttpClient는 HTTP를 사용하여 통신하는 범용 라이브러리
- RestTemplate는 HttpClient를 추상화(HttpEntity의 json,xml 등)해서 제공
-
어플리케이션이 RestTemplate를 생성하고, URI, HTTP 메소드 등의 헤더를 담아 요청
-
RestTemplate는 HttpMessageConverter를 사용하여 RequestEntity를 요청 메세지로 변환
-
RestTemplate는 ClientHttpRequestFactory로 부터 ClientHttpRequest를 가져와서 요청을 보냄
-
ClientHttpRequest 는 요청메세지를 만들어 HTTP 프로토콜을 통해 서버와 통신
-
RestTemplate 는 ResponseErrorHandler 로 오류를 확인하고 있다면 처리로직을 태움
-
ResponseErrorHandler 는 오류가 있다면 ClientHttpResponse 에서 응답데이터를 가져와서 처리
-
RestTemplate 는 HttpMessageConverter 를 이용해서 응답메세지를 java object(Class responseType) 로 변환
-
어플리케이션에 반환
Test Code
@Service
public class ApiServiceImpl implements ApiService {
private final RestTemplate restTemplate;
public ApiServiceImpl(RestTemplate restTemplate) {
this.restTemplate = restTemplate;
}
@Override
public List<User> getUsers(int start, int limit) {
ResponseEntity<List<User>> response =
restTemplate.exchange(
"https://jsonplaceholder.typicode.com/users/?_start=" + start + "&_limit=" + limit,
HttpMethod.GET,
null,
new ParameterizedTypeReference<>() {});
return response.getBody();
}
}
@Test
void getUsers() {
List<User> users = apiService.getUsers(0, 3);
Assertions.assertEquals(3, users.size());
}
Author And Source
이 문제에 관하여(REST API Web Study 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@donsco/REST-API-Web-Study-정리저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)