언제 어떤걸 사용해야할까?
restAPI에서 데이터를 어떤식으로 주고 받을지에 따라 사용해야 할 어노테이션이 다르다.
@RequestBody
데이터를 Json으로 주고 받을때 사용한다.
@PostMapping("/test.json")
fun testController(@RequestBody memberDto: MemberDto): Long {
return memberDto.name
}
//받고자 하는 데이터 class를 생성한다.
class MemberDto(
name: String,
age: Long,
)
"http://localhost:8080/test.json" 으로 Post 요청
data는 json으로 보냄
@RequestParam
쿼리 파라미터를 통해서 데이터를 주고 받을때 사용한다.
@GetMapping("/test")
fun testController(
@RequestParam ("memberName")memberName: String,
@RequestParam ("memberAge")memberAge: Int,
): String {
return memberName
}
"http://localhost:8080/test?memberName=asdsad&memberAge=1" 으로 get요청
쿼리 파라미터는 데이터를 선택적으로 받을 수 있다.
"http://localhost:8080/test?memberName=asdsad"
"http://localhost:8080/test?memberAge=1" 모두 가능하다
대신 아래와 같이 기본값을 설정해주어야 함
@GetMapping("/test")
fun testController(
@RequestParam ("memberName", required = false, defaultValue = "")memberName: String,
@RequestParam ("memberAge", required = false, defaultValue = "")memberAge: Int,
): String {
return memberName
}
@PathVariable
url의 경로 일부를 파라미터로 이용함
@GetMapping("/test/{memberId}")
fun testController(
@PathVariable ("memberId")memberId: Long,
): Long {
return memberId
}
"http://localhost:8080/test/123" 으로 get 요청
'Programing > Spring Boot' 카테고리의 다른 글
| Spring boot Data JPA 엔티티를 DTO로 조회하는 방법 (0) | 2023.06.28 |
|---|---|
| JPA 컬렉션을 페치조인하면 페이징이 불가능하다 (0) | 2023.06.28 |
| 스프링부트, 리액트 파일 업로드 (0) | 2023.06.21 |
| 코틀린으로 크롤링 하기 Jsoup 사용 (0) | 2023.05.27 |
| [Spring] Annotation (0) | 2023.01.21 |