스프링/스프링 MVC 패턴
API 요청 매핑 타입
chanhee01
2023. 2. 14. 12:50
회원 관리 API
회원 목록 조회: GET /users
회원 등록: POST /users
회원 조회: GET /users/{userId}
회원 수정: PATCH /users/{userId}
회원 삭제: DELETE /users/{userId}
회원 목록 조회와 회원 등록을 보면 url이 같더라도 http 메서드로 구분해서 기능을 다르게 할 수 있다.
@RestController
@RequestMapping("/mapping/users")
public class MappingClassController {
/**
회원 목록 조회: GET /users
회원 등록: POST /users
회원 조회: GET /users/{userId}
회원 수정: PATCH /users/{userId}
회원 삭제: DELETE /users/{userId}
**/
@GetMapping
public String user() {
return "get users";
}
@PostMapping
public String addUser() {
return "post user";
}
@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;
}
}
실제로 동작은 하지않지만 매핑만 하는 코드이다.
http://localhost:8080/mapping/users/userA url로 접근할 때 Get, Patch, Delete 어떠한 방식을 통해 접근하는지에 따라서 return 값이 바뀐다. 즉, http 접근 방식에 따라서 다른 메서드가 호출된다는 것이다.