java/spring

스프링을 이용한 Restful 웹 서비스 구축하기

gt1000 2016. 6. 28. 23:34

책 중에 기억할것

 

HttpMessageConverter 처리를 할때

@ResponseBody 애노테이션을 이용하는 방법과

ResponseEntity<T>를 이용하는 방법이 있다.

ResponseEntity의 경우

 

HttpHeaders httpHeaders = new HttpHeaders();

httpHeaders .add("Content-Type", "application/json; charset=UTF-8");

return new ResponseEntity<T>(T 객체, httpHeaders, HttpStatus.OK);

 

와 같은 형태로 응답 헤더값도 추가할 수 있음

 

pom.xml

 

<!-- Jackson -->
  <dependency>
   <groupId>com.fasterxml.jackson.core</groupId>
   <artifactId>jackson-core</artifactId>
   <version>${version.jackson}</version>
  </dependency>
  <dependency>
   <groupId>com.fasterxml.jackson.core</groupId>
   <artifactId>jackson-databind</artifactId>
   <version>${version.jackson}</version>
  </dependency>

 

Http Method Conversion

GET, POST만 지원하는 클라이언트가 있다면 POST 메서드의 패라미터로 넘어온

_method 값을 HTTP Method로 변환해 주는 HiddenHttpMethodFilter 클래스를 제공

<input type="hidden" name="_method" value="delete" />

Spring form 태그를 사용할 경우

<form:form method="delete">
   <input type="submit" value="삭제" />

</form:form>

 

예외는 다양한 방법이 있는데..... 이렇게도 할수 있음

@ControllerAdvice
public class RestResponseEntityExceptionHandler {

 @ExceptionHandler(value = {ResourceNotFoundException.class})
 @ResponseStatus(value = HttpStatus.NOT_FOUND)
 @ResponseBody
 public RestError handleResourceNotFound(ResourceNotFoundException ex) {
  RestError error = new RestError(404, "해당 자원을 찾을 수 없습니다.");
  return error;
 }

}

 

RestTemplate 을 사용하는 예제는 상세하게 없어서... 생략