728x90
@ReqeustMapping 정의시 아래와 같이 consumes와 produces 를 정의할 수 있다.
@RequestMapping("/test"
, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE
, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public String hello(){
return "hello";
}
consumes 는 클라이언트로부터 수신하고자 하는 데이터 포맷을 지정하는 것이고 produces는 서버에서 응답하고자 하는 데이터 포맷을 지정하는 것이다.
클라이언트 입장에서는 서버쪽 api 호출시 보낼 데이터의 포맷을 Content-Type 이라는 헤더값으로 명시하고 응답받을 수 있는 데이터 포맷을 Accept 헤더값으로 명시한다.
위와 같은 api 를 호출할 경우 해당 Content-Type 헤더값을 application/json 으로 명시하지 않는다면 416 에러를 응답받을 것이고 Accept 헤더에 application/json 가 포함되지 않는다면 406 에러를 응답받을 것이다.
728x90
'Backend > Spring+Boot' 카테고리의 다른 글
CircuitBreaker, Resilience4j, RestClient (0) | 2021.07.09 |
---|---|
ObjectMapper json 직렬화/역직렬화 주의사항 (0) | 2021.07.07 |
SpringBoot Redis Cluster Lettuce 설정 (0) | 2021.05.04 |
SpringBoot embedded Redis Cluster (0) | 2021.05.04 |
spring cloud config 비활성화 (0) | 2021.05.04 |