Blog

[Spring]14_0 API 메소드별 맵핑 방법과 @RequestMapping을 통한 중복제거

Author
Summary
요청 메소드를 사용하는 방법과 Spring의 도움
Category
Study
Tags
Spring
Favorite
Memory Date
2023/08/29
Cross Reference Study
Related Media
Related Thought
Related Lessons
tag
날짜
작성자
진행상황
진행 전
태그구분
6 more properties
API path 즉, URL을 Controller에 작성하는 방법은 @Controller 애너테이션이 달려있는 클래스를 생성한 뒤 @GetMapping 처럼 요청한 HTTP Method 와 일치하는 애너테이션을 추가한 메서드를 구현
아래와 같이 API 명세표를 작성하고 컨트롤러를 구성하는 것이 좋다.
기능
Method
URL
반환
로그인 페이지
GET
/user/login
login 페이지
로그아웃 처리
GET
/user/logout
"/" 으로 redirect
회원 가입 페이지
GET
/user/signup
signup 페이지
회원 가입 처리
POST
/user/signup
"/" 으로 redirect

컨트롤러 클래스를 통해 요청 및 응답 메서드 실행

메소드 위에 다음과 같은 @<method>Mapping("/api/URL") 어노테이션을 추가하면 GET,POST,PUT,DELETE 등 요청방식을 선택하여 요청을 처리 할 수 있다.
<method>자리엔 (Get/Post/Put/Delete) 등 많지만 가장 많이 사용되는 것은 이것들.
예시)
@GetMapping("/api/hello") @ResponseBody public String hello(){ return "Hello World"; }
Java
복사
위 메소드를 통해서 http://localhost:8080/api/hello URL을 접속(요청)하면 Hello World라는 문자열을 확인 할 수 있다.

중복 URL제거?

위 메소드와 유사한 메소드가 다수 있다고 가정하면, 공통적으로 “/api”라는 URL로 시작 할 가능성이 많다.
해당 컨트롤러 클래스 선언부 위에 @RequestMapping(”/api”) 어노테이션을 작성하면 해당 클래스 내 모든 요청메서드들은 “/api”로 시작하게 되어 중복을 줄일 수 있다. 뿐만 아니라 유사한 기능들을 컨트롤러로 구성하기 때문에 프로젝트 구조적으로 시작 URL을 관리 할 수 있는 점에서 유지보수 측면에서 유리하다.
@RequestMapping("/api") @Controller public class HelloController { @GetMapping("/hello") @ResponseBody public String hello(){ return "Hello World"; } @GetMapping("/get") @ResponseBody public String get(){ return "GET Method 요청"; }
Java
복사
위 처럼 @RequestMapping(”/api”) 를 기입하고, 요청 메소드들은 공통 URL이후의 URL만 작성하면 된다. 그럼 동일하게 http://localhost:8080/api/hello로 접근하게 된다.