Backend/Spring+Boot

@RequestMapping consumes, produces

findmypiece 2021. 7. 7. 09:55
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