Spring에서 REST API
2023. 3. 22. 21:10ㆍWEB개발/TIL
반응형
API(GET, POST)
1. GET
1.1. @GetMapping("url"): Controller에서 Get method의 URL을 받을 때 사용
@GetMapping("url주소")
public String 함수명() {
return "템플릿 파일명";
}
1.2. 클라이언트에서 보낸 데이터를 받는 방법
@RequestParam: 쿼리스트링 값(?key=value)을 받음
@PathVariable: url-path 값을 받음
// 1. @RequestParam 예시
// 1-1. key값과 변수명을 같게 설정
@GetMapping("url주소")
public String 함수명(@RequestParam String key) {
return "템플렛 파일명";
}
// 1-2. key값과 변수명을 다르게 설정
@GetMapping("url주소")
public String 함수명(@RequestParam(value="key" String key2) {
return "템플렛 파일명";
}
// 2. @PathVariable 예시
// 2-1. value값과 변수명을 같게 설정
@GetMapping("url주소/{value}")
public String 함수명(@PathVariable String value) {
return "템플릿 파일명"
}
// 2-2. value값과 변수명을 다르게 설정
@GetMapping("url주소/{value}")
public String 함수명(@PathVariable(value="value", required=false) String value2) {
// required=false일 경우, 그 값은 필수가 아님.
// required=true는 default이며, true이면 그 값은 필수로 들어와야 함.
// 만약, 값이 들어오지 않았다면 주소 자체를 읽지 못함(에러 발생).
return "템플릿 파일명"
}
2. POST
2.1. @PostMapping("url"): Controller에서 Post method의 URL을 받을 때 사용
@PostMapping("url주소")
public String 함수명() {
return "템플릿 파일명";
}
2.2. 클라이언트에서 보낸 데이터를 받는 방법
@RequestParam 어노테이션 사용
서버의 응답 방법
@ResponseBody 어노테이션 사용
= Node.js에서의 res.send()와 동일
@RequestBody와 @ResponseBody
@RequestBody: HTTP body내용을 자바객체(VO)로 변환해 매핑된 메서드 파라미터로 전달
@ResponseBody: 자바객체(VO)를 HTTP body내용으로 매핑하여 클라이언트로 전달
Form 및 Axios 전송(클라이언트)
Content-type이 application/json일 경우(ex. axios-post), @RequestBody 사용
form 전송의 경우, application/x-www-form-urlencoded 타입이므로 @RequestBody를 사용하지 않음
반응형
'WEB개발 > TIL' 카테고리의 다른 글
Lombok (0) | 2023.03.24 |
---|---|
Persistence Framework와 Mybatis (0) | 2023.03.24 |
Spring(DTO&VO, Bean, Annotation) (0) | 2023.03.21 |
REST API (0) | 2023.03.21 |
Spring 정의, Spring Boot, Thymeleaf 문법 (0) | 2023.03.21 |