Spring REST 文档 - 避免记录链接
Spring REST Docs - Avoid document the links
我在 SpringBoot 2 应用程序中有这个方法:
@Test
public void shouldEchoTheParameter() throws Exception {
mockMvc.perform(get("/echo").param("echoMessage", "Test"))
.andExpect(status().isOk())
.andExpect(jsonPath("$.message", is("Test")))
.andDo(document("echo-example",
preprocessResponse(prettyPrint()),
links(linkWithRel("self").ignored().optional()),
requestParameters(
parameterWithName("echoMessage").description("The message to be echoed")),
responseFields(
fieldWithPath("message").
description("The message echoed"))
));
}
我想避免记录这部分负载:
{
"_links" : {
"self" : {
"href" : "http://localhost:8080/echo"
}
}
}
我包括了这个:
links(linkWithRel("self").ignored().optional()),
但我有这个错误:
java.lang.IllegalStateException: No LinkExtractor has been provided and one is not available for the content type application/vnd.pxs.echo.v1+json;charset=UTF-8
links(…)
创建一个专门用于记录超媒体链接的片段。由于您根本不想记录任何链接,因此应避免使用 links
代码段。
相反,修改您对 responseFields
的使用以忽略 _links
字段和嵌套在它下面的所有内容。 REST 文档将此称为小节,可以使用 subsectionWithPath(String)
对其进行记录。你想忽略 _links
小节,所以你会做这样的事情:
responseFields(subsectionWithPath("_links").ignored(),
fieldWithPath("message").description("The message echoed"))
我在 SpringBoot 2 应用程序中有这个方法:
@Test
public void shouldEchoTheParameter() throws Exception {
mockMvc.perform(get("/echo").param("echoMessage", "Test"))
.andExpect(status().isOk())
.andExpect(jsonPath("$.message", is("Test")))
.andDo(document("echo-example",
preprocessResponse(prettyPrint()),
links(linkWithRel("self").ignored().optional()),
requestParameters(
parameterWithName("echoMessage").description("The message to be echoed")),
responseFields(
fieldWithPath("message").
description("The message echoed"))
));
}
我想避免记录这部分负载:
{
"_links" : {
"self" : {
"href" : "http://localhost:8080/echo"
}
}
}
我包括了这个:
links(linkWithRel("self").ignored().optional()),
但我有这个错误:
java.lang.IllegalStateException: No LinkExtractor has been provided and one is not available for the content type application/vnd.pxs.echo.v1+json;charset=UTF-8
links(…)
创建一个专门用于记录超媒体链接的片段。由于您根本不想记录任何链接,因此应避免使用 links
代码段。
相反,修改您对 responseFields
的使用以忽略 _links
字段和嵌套在它下面的所有内容。 REST 文档将此称为小节,可以使用 subsectionWithPath(String)
对其进行记录。你想忽略 _links
小节,所以你会做这样的事情:
responseFields(subsectionWithPath("_links").ignored(),
fieldWithPath("message").description("The message echoed"))