Spring REST Docs + RequestBody + 防止字段的深层文档

Spring REST Docs + RequestBody + Prevent deep-level documentation of fields

我在使用 Spring REST 文档时遇到问题,无法对请求正文中的字段进行深入记录:

@Transactional
    @RequestMapping(path = "/edit", method = RequestMethod.POST)
    public ResponseEntity<Void> edit(
            @RequestParam("id") Long id,
            @RequestBody TreeItemResource root)

和文档测试:

@Test
    public void edit() throws Exception {
        
        //...
        
        this.getMockMvc(this.controller).perform(post("/edit"))
                .andDo(document("root",
                        requestFields(
                                subsectionWithPath("childs"))));
        
    }

这个测试需要很多时间,输出如下:

root.childs[].childs[].childs[].childs[].childs[].childs[].path

我该如何防止这种情况?

我找到了解决办法!

注解@RestdocsNotExpanded就是为了这个目的。您必须注释不应在 REST Api 文档中扩展的 DTO 字段。