개발스토리

[REST docs error] java.lang.IllegalArgumentException: urlTemplate not found. If you are using MockMvc did you use RestDocumentationRequestBuilders to build the request? 본문

Spring & SpringBoot

[REST docs error] java.lang.IllegalArgumentException: urlTemplate not found. If you are using MockMvc did you use RestDocumentationRequestBuilders to build the request?

무루뭉 2021. 11. 16. 16:05
java.lang.IllegalArgumentException: urlTemplate not found. If you are using MockMvc did you use RestDocumentationRequestBuilders to build the request?

 

Rest Docs를 적용을 하고 api 문서를 뽑아내는 중에 위와 같은 오류를 만났다.

 

어쩌다 만났느냐..!?

api 문서를 만들려면 당연히 클라이언트에게 api를 사용하기 위한 모든 정보를 적어서 줘야 한다.

예를 들어 user를 조회하기 위한 api url이 domain/user/{username}이라고 치자.

domain/user는 변하지 않지만 username은 동적이다. joo라는 사용자를 조회할 수도 있고 kim이라는 사용자를 조회할 수도 있다.

MvcResult mvcResult = requestGet(baseUrl + "/user/{username}", "joo")
                .andExpect(status().isOk())
                .andDo(document("user-select",
                        pathParameters(
                                parameterWithName("username").description("유저 이름")
                        )

나는 이런 코드로 스니펫을 뽑아 내려고 했다. 하지만 이 글에 제목과 같은 에러를 만난 것이다.

사실 에러 로그를 많이 만나면서 점점 에러 로그를 꼼꼼히 읽고 있었다. 

에러 로그 보면 너무 친절하게 알려준다. 그대로 번역해보겠다.

 

java.lang.IllegalArgumentException: urlTemplate을 찾을 수 없습니다. MockMvc를 사용하는 경우 RestDocumentationRequestBuilders를 사용하여 요청을 작성했습니까?

 

와우,,, 그냥 MockMvc로 썼으면 RestDocumentationRequestBuilders를 써봐라고 알려준다.

 

공식문서를 내용을 가져와 보겠다. 

 

더욱 친절하게 알려준다. path parameters를 사용하고 싶으면 RestDocumentationRequestBuilders를 쓰라고!!

 

 

그래서 나는 위와 같은 코드에 변경을 줘서 해결했다..!

'Spring & SpringBoot' 카테고리의 다른 글

Spring REST Docs 적용  (1) 2021.11.11
Spring REST Docs 도입 이유  (0) 2021.11.11
@Bean, @Component, @Configuration  (3) 2021.08.31
Service와 ServiceImpl  (1) 2021.08.31
HikariCP가 뭘까?!  (0) 2021.08.30
Comments