스프링에서 앞에 공통된 request 매핑 설정하기
프로젝트 삽질 기록

스프링에서 앞에 공통된 request 매핑 설정하기

현재 프로젝트 내의 request 매핑의 앞에 모두 "/api"를 붙여야 한다. 왜냐하면 배포할 서버에는 스프링 외에도 다양한 서비스가 올라가기 때문에 요청 매핑을 통해 어느 서비스로 요청을 보낼지 정해야 한다.

스프링 서버는 rest api이기 때문에 현재 구성되어 있은 요청 url 앞에 공통으로 "/api"를 붙이려고 한다.

모든 Controller의 요청 매핑을 바꾸는 것은 너무 시간 낭비이고, 만약 이후 "/api"가 아닌 다른 값으로 바꾸려고 할 때도, 귀찮은 행동을 또 해야 한다.

@RequestMapping("/user")   ->    @RequestMapping("/api/user")

예전에 스프링 수업을 들었을 때, 한 곳만 바꿔주면 자동으로 "/api"를 붙인 효과가 나는 기능이 있었던 거 같은데 기억이 안 났다. 이걸 어떻게 구글링 해야 하는지도 감이 안와, 친구한테 물어봤는다. 친구의 잘 모르겠지만 서버 설정을 바꾸면 되지 않을까?라는 말에 기억이 돌아왔다! 예전에 스프링 서버를 관리하는 곳에서 설정을 해줬던 거 같았다.

그래서 application.yml 파일을 봤는데 context-path 가 눈에 보였다. 이를 아래처럼 바꿔줬다.

server:
  port: 8080
  servlet:
    context-path: /api
    encoding:
      charset: UTF-8
      enabled: true
      force: true