RestTemplate
RestTemplate 사용
- Client / Server 통신
- 스프링에서 제공하는 http 통신에 유용하게 쓸 수 있는 템플릿
-
UriComponentsBuilder
.fromUriString(“http://localhost:9090”)
.path(“/api/server/hello”) .encode()
.queryParam(“name”, “aaaa”)
.queryParam(“age”, 99)
.build()
.toUri(); -
ResponseEntity
result = restTemplate.getForEntity(uri, UserResponse.class); - 반환 타입 result = restTemplate.반환 타입
getForObject / GET /
주어진 URL 주소로 HTTP GET 메서드로 객체로 결과 반환
getForEntity / GET
주어진 URL 주소로 HTTP GET 메서드로 결과는 ResponseEntity 반환
postForLocation / POST POST 요청을 보내고 결과로 헤더에 저장된 URI를 결과 반환
postForObject / POST POST 요청을 보내고 객체로 결과 반환
postForEntity / POST
POST 요청을 보내고 결과로 ResponseEntity 반환
delete / DELETE
주어진 URL 주소로 HTTP DELETE 메서드 실행
headForHeaders / HEADER
헤더의 모든 정보를 얻을 수 있으면 HTTP HEAD 메서드 사용
put / PUT
주어진 URL 주소로 HTTP PUT 메서드 실행
patchForObject / PATCH
주어진 URL 주소로 HTTP PATCH 메서드 실행
optionsForAllow / OPTIONS
주어진 URL 주소에서 지원하는 HTTP 메서드 조회
exchange / any
HTTP 헤더를 새로 만들 수 있고 어떤 HTTP 메서드도 사용 가능
execute / any
Request/Response 콜백을 수정 가능
-
EXCHANGE
- HTTP 헤더를 새로 만들 수 있고 어떤 HTTP 메서드도 사용 가능
- 지정된 URI 템플릿에 대해 HTTP 메서드를 실행하여 지정된 요청 엔터티를 요청에 쓰고 응답을 ResponseEntity 반환
- URI 템플릿 변수는 주어진 URI 변수가 있는 경우 이를 사용하여 확장
- Generic Type
- 데이터 타입 일반화
- 클래스/메소드에서 사용할 내부 데이터 타입을 컴파일 시 미리 지정
- 코드 작성 후 코드를 다양한 타입의 객체에 대하여 재사용하는 프로그래밍 기법
- 클래스에서 사용할 타입을 클래스 외부에서 설정하는 타입
- 클래스/메소드 내부에서 사용되는 객체의 타입 안정성
- 반환값에 대한 타입 변환 및 타입 검사에 들어가는 노력을 줄임
- ParameterizedTypeReference
- generic 타입으로 응답
- HttpEntity 이후 response 응답 못받음.
- 이미 사용했기에