REST API - XML, JSON(2)
1. HttpMessageConverter 설정
- HttpMessageConverter는 Bean 정의 파일의 mvc:annotation-driven 태그에 설정한다
1) HttpMessageConverter 오브젝트를 Bean으로 정의
- 복수의 MessageConverter를 등록할 수 있다
2) JAXB를 사용해서 XML 문서와 Customer 오브젝트를 변환
3) 자동 등록되는 HttpMessageConverters
- 위에서는 명시적으로 등록했지만 몇몇 컨버터는 기본적으로 등록되어있다
- StringHttpMessageConverter : 문자열과 Http 변환
- ByteArrayHttpMessageConverter : byte 배열과 Http
- Jaxb2RootElementHttpMessageConverter : xml 문서
2. XML과 클래스의 매핑
- Controller 구현전 XML 형식을 정해두어야 한다
- XML 형식과 Customer 클래스의 매핑은 JAXB로 정의한 애노테이션으로 정의
1) xml
2) Customer.java
- 클래스에 @XmlRootElement 설정하면 나머진 JAXB가 클래스 이름과 프로퍼티 이름을 바탕으로 자동적으로 해준다
3. HTTP 메시지 수신
1). CustomerRestController.java
1,2) 메소드에 엑세스 하기 위한 설정이다
3) HTTP요청의 바디를 인수로 받기 위한 설정
- @RequestBody 애노테이션을 설정한 인수에는 HTTP 요청의 바디를 HttpMessageConverter로 변환한 결과가 설정된다
2). HTTP 응답 반환
- REST 에서는 원칙적으로 클라이언트는 HTTP 응답의 스테이터스 코드를 바탕으로 처리의 성공 여부를 판단
- 서버는 올바르게 스테이터스 코드를 반환해야만 한다
5) @ResponseStatus
- Controller 메소드가 정상종료 했을 때 어느 스테이터스 코드를 반환할지 정의
- HttpStatus enum의 값을 지정한다
- @ResponseStatus 애노테이션을 지정하지 않아도 Controller 메소드가 정상적으로 종료되면 200을 반환
7) @ResponseBody
- 위 메소드는 OK 문자열을 반환하고 이문자는 HTTP 응답의 바디에 삽입된다
- HTTP 응답 바디에 삽입할 값이 반환한다는 것을 설정하고자 @ResponseBody를 설정
'Back-End > SpringFrame_1' 카테고리의 다른 글
[Spring] REST API - ResponseEntity 오브젝트 (0) | 2016.10.30 |
---|---|
[Spring] REST API - XML, JSON(1) (0) | 2016.10.25 |
[Spring] 파일업로드(fileupload) (0) | 2016.10.23 |
[Spring] Model오브젝트와 Session스코프 (0) | 2016.09.18 |
[Spring] 입력값다루기 @ModelAttribute (0) | 2016.09.18 |