Spring에서 REST API

2023. 3. 22. 21:10WEB개발/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