24.11.18 TIL Request Mapping

신성훈·2024년 11월 18일
0

TIL

목록 보기
80/162

1. Request Mapping이란?

Request Mapping은 Spring Framework에서 클라이언트의 HTTP 요청을 특정 컨트롤러 메서드와 연결하는 데 사용되는 애노테이션 입니다. 클라이언트가 보낸 URL, HTTP 메서드(GET, POST 등), 요청 파라미터 등을 기반으로 요청을 처리할 메서드를 매핑합니다.

대표적으로 사용하는 애노테이션:

  • @RequestMapping: 가장 기본적인 요청 매핑 애노테이션
  • @GetMapping, @PostMapping, @PutMapping, @DeleteMapping: HTTP 메서드에 따라 세분화된 애노테이션

2. Request Mapping 애노테이션 종류와 사용법

2.1 @RequestMapping

  • HTTP 메서드에 관계없이 요청 URL을 매핑합니다.
  • 요청 URL, 파라미터, 헤더 등 다양한 속성을 설정할 수 있습니다.

예제:

@RequestMapping(value = "/hello", method = RequestMethod.GET)
public String sayHello() {
    return "Hello, World!";
}

2.2 @GetMapping

  • GET 요청을 처리하기 위한 애노테이션입니다.
  • URL 경로를 간단히 매핑할 수 있습니다.

예제:

@GetMapping("/users")
public List<User> getUsers() {
    return userService.findAll();
}

2.3 @PostMapping

  • POST 요청을 처리하며 주로 데이터를 생성할 때 사용됩니다.

예제:

@PostMapping("/users")
public String createUser(@RequestBody User user) {
    userService.save(user);
    return "User created successfully";
}

2.4 @PutMapping

  • PUT 요청을 처리하며 리소스를 업데이트할 때 사용됩니다.

예제:

@PutMapping("/users/{id}")
public String updateUser(@PathVariable Long id, @RequestBody User user) {
    userService.update(id, user);
    return "User updated successfully";
}

2.5 @DeleteMapping

  • DELETE 요청을 처리하며 리소스를 삭제할 때 사용됩니다.

예제:

@DeleteMapping("/users/{id}")
public String deleteUser(@PathVariable Long id) {
    userService.delete(id);
    return "User deleted successfully";
}

3. Request Mapping의 주요 속성

  • value (path): 매핑할 URL 경로 지정
  • method: 허용할 HTTP 메서드 지정 (GET, POST 등)
  • params: 요청에 포함된 특정 파라미터 매핑
  • headers: 특정 헤더 값과 매핑
  • consumes/produces: 요청/응답의 Content-Type 지정

예제:

@RequestMapping(value = "/users", method = RequestMethod.GET, params = "age=20", headers = "X-Request=Custom")
public List<User> getUsersByAge() {
    return userService.findByAge(20);
}

4. Request Mapping의 장점

  • 직관적인 경로 매핑: URL을 기반으로 요청을 분류하고 처리 가능
  • 유연성 제공: HTTP 메서드, 파라미터, 헤더 등 다양한 조건 지원
  • 코드 가독성 향상: 컨트롤러 메서드와 URL의 관계를 명확히 보여줌

5. 마무리

Request Mapping은 Spring MVC에서 컨트롤러와 클라이언트 요청을 연결하는 핵심 기능으로, RESTful API를 설계하는 데 매우 유용하다는 점을 배웠습니다. 특히, @GetMapping 등 세분화된 애노테이션은 코드의 가독성을 높이고, 유지보수를 쉽게 만들어줍니다. 앞으로 복잡한 API 설계 시, 매핑 조건들을 적절히 활용해 더 유연하고 효율적인 코드를 작성해야겠다고 느꼈습니다.

profile
조급해하지 말고, 흐름을 만들고, 기록하면서 쌓아가자.

0개의 댓글