donaricano-btn

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를 설정




블로그 이미지

리딩리드

,