관리 메뉴

Rootable의 개발일기

HTTP 요청 매핑 본문

Spring

HTTP 요청 매핑

dev-rootable 2023. 7. 15. 20:20

📌 요청 URL 및 메서드 매핑

 

🔎 @RequestMapping

 

"/hello-basic"이라는 요청 URL이 오면 응답

 

@RequestMapping은 HTTP 메서드를 모두 허용함

 

기본 요청

 

GET 요청에만 응답

 

🔎 축약형 애노테이션

 

특정 메서드 요청에만 응답

 

스프링은 @GetMapping뿐만 아니라 HTTP 메서드 축약형 애노테이션인 @PostMapping, @PutMapping 등 모두 지원함

 

특정 메서드 요청

 

🔎 PathVariable 경로 변수

 

특정 사용자 또는 특정 게시물 등을 표현하기 위해서는 URL 경로에 동적 경로가 들어가게 된다.

 

예를 들어, "/members/1"는 1번 회원에 대한 페이지를 말한다.

 

위 URL처럼 '1'이라는 경로는 계속 변경되기 때문에 이 값마다 처리하는 컨트롤러를 만드는 것은 매우 비효율적이다.

 

그래서 스프링은 PathVariable이라는 동적 경로를 처리하는 애노테이션을 지원한다.

 

동적 경로 요청

 

만약 @PathVariable 변수와 경로 변수 이름이 같으면 아래처럼 생략할 수 있다. 또한, 한 경로 내 여러 개의 동적 경로를 넣을 수 있다.

 

동적 경로 요청(다중)

 

📌 특정 파라미터 매핑

 

특정 파라미터 조건으로 매핑할 수 있다.

 

특정 파라미터 요청

 

요청 스펙

 

mode 값이 debug가 아니므로 "ok"라는 정상 응답이 나왔다.

 

📌 특정 헤더 조건 매핑

 

특정 헤더 요청

 

요청 스펙

 

mode라는 헤더의 값이 debug이므로 "ok"라는 정상 응답이 나왔다.

 

📌 미디어 타입 조건 매핑

 

Content-Type 헤더 값이 "application/json"인 요청에 응답

 

Accept 헤더 값이 "text/plain"인 요청에 응답

 

📌 요청 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

 

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의

웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., 원

www.inflearn.com

 

'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