상태 코드(Status Code):
-ResponseEntity는 HTTP 상태 코드를 설정할 수 있다. 예를 들어, OK, NOT_FOUND, BAD_REQUEST 등 다양한 상태 코드를 지정할 수 있다.
헤더(Header):
-응답에 포함될 HTTP 헤더를 설정할 수 있다. 예를 들어, Content-Type, Authorization 등의 헤더를 지정할 수 있다.
본문(Body):
-응답의 본문에 포함될 데이터를 설정할 수 있다. 예를 들어, 객체, 문자열, JSON 등 다양한 형식의 데이터를 본문으로 설정할 수 있다.
-스프링 프레임워크에서 제공하는 HTTP 클라이언트이다. 이를 통해 RESTful 웹 서비스와 통신할 때 HTTP요청을 보내고 응답을 받을 수 있다.
HTTP 요청 보내기:
-GET, POST, PUT, DELETE 등 다양한 HTTP 요청 메소드를 지원한다.
URL과 요청 본문, 헤더 등을 지정하여 요청을 보낼 수 있다.
응답 처리:
-RestTemplate을 사용하여 요청을 보낸 후 응답을 받을 수 있다.
응답의 본문, 상태 코드, 헤더 등을 쉽게 액세스할 수 있다.
객체 매핑:
-응답 본문을 JSON이나 XML 등의 형식에서 자바 객체로 매핑할 수 있다.
RestTemplate은 이러한 데이터 형식 변환을 자동으로 수행한다.
예외 처리:
-요청을 보낼 때 발생할 수 있는 예외를 적절히 처리할 수 있다.
RestTemplate은 HTTP 오류 상태 코드를 예외로 변환하여 던져줄 수 있다.
-HttpEntity는 HTTP 요청이나 응답의 본문과 헤더를 함께 나타내는 클래스이다.
HttpEntity는 본문과 헤더를 포함하여, 이를 통해 요청이나 응답에 대한 정보를 캡슐화한다.
프로젝트를 진행할 때 Jira 에 REST API로 요청을 보내 데이터를 가져올 일이 있었는데,
HttpHeader, HttpEntity, ResponseEntity, RestTemplate 를 이용해 한 적이 있어 정리를 해보려고 한다.
public ResponseEntity<JiraCloudData> getAllIssueByProjectKeyFromCloud(String jiraBaseURL, String userName, String passWord, String projectKey) {
String cloudUrl = String.format("", jiraBaseURL, projectKey);
HttpHeaders headers = new HttpHeaders();
headers.setBasicAuth(userName, passWord);
HttpEntity<String> request = new HttpEntity<>(headers);
ResponseEntity<JiraCloudData> response = this.restTemplate.exchange(cloudUrl, HttpMethod.GET, request, JiraCloudData.class);
return response;
}
HttpHeaders 를 이용해 요청헤더 설정을 하고 HttpEntity는 요청 헤더를 캡슐화한다.
ResponseEntity를 사용하여 REST API로부터 받은 HTTP응답을 처리한다.
RestTemplate를 사용하여 GET 요청을 보내고 ResponseEntity를 사용하여 응답 본문을 JiraCloudData 타입으로 매핑을 한다.