Spring/SpringMVC

요청 매핑 - API 예시

느리지만 꾸준하게 2022. 4. 29. 19:48

회원 관리를 HTTP API로 만든다 하고 매핑을 어떻게 하는지 알아보자.(URL 매핑만 신경쓴다.)

 

 

회원 관리 API

 

  • 회원 목록 조회: GET /users

 

  • 회원 등록: POST /users

 

  • 회원 조회: GET /users/{userId}

 

  • 회원 수정: PATCH /users/{userId}

 

  • 회원 삭제: DELETE /users/{userId}

 

 

 

MappingClassController를 만들어 보자.

// MappingClassController

package hello.springmvc.basic.requestmapping;


import org.springframework.web.bind.annotation.*;

@RestController
public class MappingClassController {

    /**
     * 회원 관리 API
     * 회원 목록 조회: GET /users
     * 회원 등록: POST /users
     * 회원 조회: GET /users/{userId}
     * 회원 수정: PATCH /users/{userId}
     * 회원 삭제: DELETE /users/{userId}
     */

    @GetMapping("/mapping/users")
    public String user() {
        return "get users";
    }

    @PostMapping("/mapping/users")
    public String addUser() {
        return "post user";
    }


    // pathvariable
    @GetMapping("/mapping/users/{userId}")
    public String findUser(@PathVariable String userId) {
        return "get userId=" + userId;
    }

    @PatchMapping("/mapping/users/{userId}")
    public String updateUser(@PathVariable String userId) {
        return "update userId=" + userId;
    }

    @DeleteMapping("/mapping/users/{userId}")
    public String deleteUser(@PathVariable String userId) {
        return "delete userId=" + userId;
    }
}

 

 

 

아래와 같이 간단하게 RequestMapping annotation을 통해서 url 경로를 간단하게 바꿔보자.

즉 클래스 레벨에 매핑 정보를 두면 메서드 레벨에서 해당 정보를 조합해서 사용할 수 있게 된다.

package hello.springmvc.basic.requestmapping;


import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/mapping/users")
public class MappingClassController {

    @GetMapping
    public String user() {
        return "get users";
    }

    @PostMapping
    public String addUser() {
        return "post user";
    }


    // pathvariable
    @GetMapping("/{userId}")
    public String findUser(@PathVariable String userId) {
        return "get userId=" + userId;
    }

    @PatchMapping("/{userId}")
    public String updateUser(@PathVariable String userId) {
        return "update userId=" + userId;
    }

    @DeleteMapping("/{userId}")
    public String deleteUser(@PathVariable String userId) {
        return "delete userId=" + userId;
    }
}

 

 

그리고 Accept에 따라서 postman 출력 로그가 달라지는데 Accept를 text/html로 해서 html형식으로 출력로그가 보이게 된다.

 

 

"/"로 해주고 돌리면 정상적으로 나온다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<출처 김영한: 스프링 MVC 1편 - 벡앤드 웹 개발 핵심 기술>

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard

 

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

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

www.inflearn.com

 

'Spring > SpringMVC' 카테고리의 다른 글

HTTP 요청 파라미터 - 쿼리 파라미터, HTML Form & RequestParam  (0) 2022.04.29
HTTP 요청 - 기본, 헤더 조회  (0) 2022.04.29
요청 매핑  (0) 2022.04.29
스프링MVC 기본기능  (0) 2022.04.29
SpringMVC 구조 정리  (0) 2022.04.28