송민준의 개발노트

[406] path variable email을 사용하는 경우 에러 해결방안 본문

웹/Spring Framework

[406] path variable email을 사용하는 경우 에러 해결방안

송민준 2020. 11. 11. 00:31

기본적으로 URL 을

http://localhost:8088/hansong/v1/members/test@kakao.com

위처럼 해주면 뒤에 .com을 빼고 변수에 담는다.

 

이에 대한 해결방안은 뒤에 ':.+' 를 붙여주는 것인데 예를 들어

@GetMapping(value = "/{email:.+}")
    public EntityModel<Member> getUser(@PathVariable String email) {

위와 같이 해주면 된다.

 

이렇게 해도 406에러가 발생한다면 스프링 설정을 하나 추가해줘야한다.

 

javaconfig 기준으로 WebMvcConfigurer 를 상속받는 곳에서 아래와 같이 설정해준다.

   @Override
   public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
      configurer.favorPathExtension(false);
   }

 

 

아래 경로를 참고했으며 외국형님들도 나와 같은 고민을 했던 것 같다.

medium.com/@saishav_io/error-406-while-using-and-email-address-as-a-path-variable-in-spring-boot-8caaefc17c7b

 

Error 406 while using an email address as a path variable in Spring Boot

I came across an issue while developing a new endpoint on a Spring boot app. Basically, a REST endpoint with a GET mapping defined in a…

medium.com