Исправление документации pathParameters (urlTemplate не найден)
При использовании pathParameters
для документирования параметров пути URI, как показано ниже
@Test
public void documentGetRouteById() throws Exception {
this.mockMvc.perform(get("/route/{id}", "FooBar")).andExpect(status().isOk())
.andDo(document("api-getRouteById",
pathParameters(parameterWithName("id").description("die Routen ID"))));
}
Я получаю следующее excpetion
java.lang.IllegalArgumentException: urlTemplate not found. Did you use RestDocumentationRequestBuilders to build the request?
at org.springframework.util.Assert.notNull(Assert.java:112)
at org.springframework.restdocs.request.PathParametersSnippet.extractUrlTemplate(PathParametersSnippet.java:95)
at org.springframework.restdocs.request.PathParametersSnippet.extractActualParameters(PathParametersSnippet.java:82)
at org.springframework.restdocs.request.AbstractParametersSnippet.verifyParameterDescriptors(AbstractParametersSnippet.java:77)
at org.springframework.restdocs.request.AbstractParametersSnippet.createModel(AbstractParametersSnippet.java:65)
at org.springframework.restdocs.request.PathParametersSnippet.createModel(PathParametersSnippet.java:67)
at org.springframework.restdocs.snippet.TemplatedSnippet.document(TemplatedSnippet.java:64)
at org.springframework.restdocs.mockmvc.RestDocumentationResultHandler.handle(RestDocumentationResultHandler.java:101)
at org.springframework.test.web.servlet.MockMvc$1.andDo(MockMvc.java:158)
Я уверен, что я сделал тестовую настройку, как описано здесь.
Что я мог сделать неправильно?
(Spring версия REST docs - 1.0.0.BUILD-SNAPSHOT)
Ответы
Ответ 1
Сообщение об исключении пытается указать вам в правильном направлении:
urlTemplate не найден. Вы использовали RestDocumentationRequestBuilders для создания запроса?
Вам нужно использовать RestDocumentationRequestBuilders
, чтобы Spring REST Docs могли захватывать URL-адрес и извлекать из него параметры. Это упомянутое в документации, где говорится:
Чтобы сделать параметры пути доступными для документации, запрос должен быть построен с использованием одного из методов в RestDocumentationRequestBuilders, а не для MockMvcRequestBuilders.
Замена статического импорта MockMvcRequestBuilders.get
на один для RestDocumentationRequestBuilders.get
должна устранить проблему.