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
- yml
- 파라미터
- @RequestBody
- RequestBody
- Security
- JWT
- springboot
- 디자인 패턴
- Codewars
- DTO
- enum
- @Value
- 플라이웨이트
- 반환
- redis
- 코드워즈
- @RequestParam
- RequestParam
- 헬스체크
- actuator
- 코딩테스트
- 프로퍼티
- response
- Boot
- ResponseDto
- Docker
- property
- Request
- Spring
- 로그인
Archives
- Today
- Total
있을 유, 참 진
[SpringMVC] 업무에서 활용한 @RequestBody 사용법 정리 본문
RequestBody
- java 객체에 매핑하는 법
Controller에서 DTO 받을 때 JSON 형태
- Offset 객체 소개
- Offset 객체로 받을 때의 JSON 형태
- List로 받을 때의 JSON 형태
RequestBody
💡@RequestBody는 JSON 형태의 데이터를 Java 객체에 매핑할 때 사용하는 어노테이션. Http 통신 메세지 구성의 status line, headers, body 세 부분으로 중 body 부분의 데이터를 받아올 때 사용
POST http://localhost:8080/api/v1/user
Content-Type: application/json
{
"username" : "이유진",
"email" : "yoojinLee.dev@gamil.com"
}
...
public class UserApiController {
...
@PostMapping
public ResponseEntity save(UserRequestDto requestDto) {
...
}
}
회원 가입을 구현한다고 가정 시 Json의 형태로 해당 데이터를 보내주고 UserRequestDto
객체로 해당 정보를 받으려고 한다면, UserRequestDto
는 username, email 필드가 존재한다고 해도 해당 값을 받아올 수 없다.
java 객체에 매핑하는 법
💡 HTTP 요청과 함께 받은 JSON 데이터를 Java객체에 매핑하기 위해, @RequestBody를 사용해야 한다.
...
public class UserApiController {
...
@PostMapping
public ResponseEntity save(@RequestBody UserRequestDto requestDto) {
...
}
}
Controller에서 DTO로 받을 때 JSON 형태
💡Offset이라는 객체를 하나로 받을 때와 리스트로 받을 때의 상황으로 가정해 봤다.
Offset 객체 소개
@Getter
@NoArgsConstructor
@Entity
public class offset {
@Id
private long id;
private int x;
private int y;
}
예시 Entity를 구성했다. 여기서 x, y의 값을 DTO의 형태를 통해 받아오는 상황을 설명한다.
Offset 객체로 받을 때의 JSON 형태
@Getter
public class TestRequestDto {
private String title;
private Offset offset;
}
{
...
"offset" : {
"x": 10,
"y": 5
}
}
List로 받을 때의 JSON 형태
@Getter
public class TestRequestDto {
private String title;
private List<Offset> offsets = new ArrayList<>();
}
{
...
"offsets" : [
{
"x": 10,
"y": 5
},
{
"x": 11,
"y": 6
}
]
}
'Spring' 카테고리의 다른 글
[Spring] 토비의 스프링:: Spring Boot Containerless 이해하기 (0) | 2023.04.18 |
---|---|
[Spring] Spring Actuator를 이용한 운영 어플리케이션 관리:: 세팅 및 Health check 테스트 (1) | 2023.04.09 |
[SpringMVC] Yalm, Properties 파일의 프로퍼티 값 사용하기 (1) | 2023.04.04 |
[SpringMVC] 업무에서 활용한 @JsonInclude 사용법 정리 (4) | 2023.03.31 |
[SpringMVC] 업무에서 활용한 @RequestParam 사용법 정리 (8) | 2023.03.30 |
Comments