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
복사
중복 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로 접근하게 된다.