如何使用spring restdocs记录包含JSON对象的请求正文

时间:2018-12-21 09:32:27

标签: spring-boot spring-restdocs

我正在使用Spring Boot 2来实现REST API服务,并希望使用restdocs对其进行记录。

端点

POST /api/tags

带有请求正文

{"name":"Some Tag", "description":"This is Some Tag"}

用于添加创建一个新标签。我浏览了restdocs文档,但仍然找不到记录请求正文的JSON字段的方法,有人可以帮我填写缺少的部分“ ......”。

TagRequest request = new TagRequest();
request.setName("Some Tag");
request.setDescription("This is Some Tag");
client.post().uri("/api/tags").body(BodyInserters.fromObject(request)).exchange()
        .expectStatus().isOk().expectBody(Integer.class)
        .consumeWith(document("add-tag", ...... )));

1 个答案:

答案 0 :(得分:1)

您需要使用requestFields

client
                .post().uri("/api/tags")
                .body(BodyInserters.fromObject(request))
                .exchange()
                .expectStatus().isOk()
                .expectBody(Integer.class)
                .consumeWith(
                        document("add-tag",
                                requestFields(
                                        fieldWithPath("name").description("...."),
                                        fieldWithPath("name").description("....")
                                )
                        )
                );

这已记录在官方文档中:https://docs.spring.io/spring-restdocs/docs/current/reference/html5/#documenting-your-api-request-response-payloads