Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 개발자 코딩테스트
- 코딩테스트 연습
- 자바 암호화 복호화
- 개발자 인턴
- 자바 암호화 알고리즘
- 식단일기
- .dockerignore
- 신입 개발자 자바 면접 질문
- 플레이팅
- docker image
- 신입 개발자 자바 면접
- 개발자 면접
- docker
- 신입 개발자 필수 면접 질문
- 신입 개발자 면접 질문
- 자바 암호화
- 개발자 면접 질문
- 개발자 정규직
- 개발자 채용연계형인턴
- 셰프의찾아가는구내식당
- 식단
- 자바 stream
- 프로그래머스 코딩테스트
- 직장인점심구독
- 샐러드
- Plating
- 프로그래머스
- Linux
- 도커
- 신입 개발자 면접
Archives
- Today
- Total
달리는 두딘
[Spring] Consumes와 Produces의 차이 본문
Mapping을 할 때 우리는 받고 싶은 데이터를 강제를 함으로써 오류 상황을 줄일 수 있다.
이걸 위해 사용하는 것 중 하나가 MediaTypes이다.
들어오는 데이터와 나가는 데이터를 정하여 처리를 할 수 있다.
Consumes
Consumes는 들어오는 데이터 타입을 정의할 때 이용한다.
예를 들어서 내가 json타입을 받고 싶다면 아래와 같이 처리가 가능하다.
@PostMapping(path = "/pets", consumes = MediaType.APPLICATION_JSON_VALUE)
public void addPet(@RequestBody Pet pet) {
// ...
}
이렇게 처리를 하게되면 해당 uri를 호출하는 쪽에서는 헤더에 보내는 데이터가 json이라는 것을 명시해야 한다.
Content-Type:application/json
부정형 또한 지원한다.
공식문서에 보면 아래와 같이 적혀있다.
The `consumes` attribute also supports negation expressions — for example, `!text/plain` means any content type other than `text/plain`.
Produces
Produces는 반환하는 데이터 타입을 정의한다.
@GetMapping(path = "/pets/{petId}", produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public Pet getPet(@PathVariable String petId) {
// ...
}
이럴 경우 반환 타입이 json으로 강제된다.
내가 보내야 하는 타입이 정해져 있다면 해당 부분을 정의하면 된다.
요청하는 입장에서 특정 타입의 데이터를 원한다면 아래와 같은 내용을 헤더에 추가한다.
Accept:application/json
요약
- Consumes는 클라이언트가 서버에게 보내는 데이터 타입을 명시한다.
- Produces는 서버가 클라이언트에게 반환하는 데이터 타입을 명시한다.
출처
'지식노트' 카테고리의 다른 글
[JAVA] ConnectionTimeout, ReadTimeout, SocketTimeout 차이점 (2) | 2023.02.15 |
---|---|
[JAVA] Entity, DTO 개념과 차이점 (+VO) (2) | 2023.02.09 |
[JAVA] compareTo(), 객체 크기 비교 (6) | 2023.02.08 |
[ETC] MQ(Message Queue)란? (6) | 2023.02.06 |
[Vue.js] Vuex에서 Store 사용하기 (12) | 2022.12.16 |