Rootable의 개발일기
HTTP 요청 매핑 본문
📌 요청 URL 및 메서드 매핑
🔎 @RequestMapping
"/hello-basic"이라는 요청 URL이 오면 응답
@RequestMapping은 HTTP 메서드를 모두 허용함
🔎 축약형 애노테이션
특정 메서드 요청에만 응답
스프링은 @GetMapping뿐만 아니라 HTTP 메서드 축약형 애노테이션인 @PostMapping, @PutMapping 등 모두 지원함
🔎 PathVariable 경로 변수
특정 사용자 또는 특정 게시물 등을 표현하기 위해서는 URL 경로에 동적 경로가 들어가게 된다.
예를 들어, "/members/1"는 1번 회원에 대한 페이지를 말한다.
위 URL처럼 '1'이라는 경로는 계속 변경되기 때문에 이 값마다 처리하는 컨트롤러를 만드는 것은 매우 비효율적이다.
그래서 스프링은 PathVariable이라는 동적 경로를 처리하는 애노테이션을 지원한다.
만약 @PathVariable 변수와 경로 변수 이름이 같으면 아래처럼 생략할 수 있다. 또한, 한 경로 내 여러 개의 동적 경로를 넣을 수 있다.
📌 특정 파라미터 매핑
특정 파라미터 조건으로 매핑할 수 있다.
mode 값이 debug가 아니므로 "ok"라는 정상 응답이 나왔다.
📌 특정 헤더 조건 매핑
mode라는 헤더의 값이 debug이므로 "ok"라는 정상 응답이 나왔다.
📌 미디어 타입 조건 매핑
📌 요청 API 설계
- 회원 목록 조회
- 회원 등록
- 회원 조회
- 회원 수정
- 회원 삭제
Class 단위로 매핑 URL을 정하여 하위 메서드를 간략하게 작성할 수 있다.
@RestController
@RequestMapping("/mapping/users")
public class MappingClassController {
/**
* GET /mapping/users
*/
@GetMapping
public String users() {
return "get users"; //목록 조회
}
/**
* POST /mapping/users
*/
@PostMapping
public String addUser() {
return "post user"; //등록
}
/**
* GET /mapping/users/{userId}
*/
@GetMapping("/{userId}")
public String findUser(@PathVariable String userId) {
return "get userId=" + userId; //특정 회원 조회
}
/**
* PATCH /mapping/users/{userId}
*/
@PatchMapping("/{userId}")
public String updateUser(@PathVariable String userId) {
return "update userId=" + userId; //수정
}
/**
* DELETE /mapping/users/{userId}
*/
@DeleteMapping("/{userId}")
public String deleteUser(@PathVariable String userId) {
return "delete userId=" + userId; //삭제
}
}
Reference:
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard
'Spring' 카테고리의 다른 글
HTTP 메시지 컨버터(HTTP Message Converter) (0) | 2023.07.17 |
---|---|
HTTP 요청 파라미터 (0) | 2023.07.15 |
@RequestParam vs @ModelAttribute vs @RequestBody (0) | 2023.07.14 |
서블릿(Servlet) 활용 (0) | 2023.07.12 |
서블릿(Servlet) 기본 (1) | 2023.07.11 |