Spring Auto REST Docs + Spring Data REST? HATEOAS?

时间:2018-02-12 15:23:26

标签: spring-data-rest spring-hateoas spring-restdocs spring-auto-restdocs

我非常喜欢使用Javadoc注释自动生成REST Docs的想法!

我们的REST API的大部分由Spring Data REST自动生成(通过将@RepositoryRestResource添加到存储库)。如果还可以为这些生成REST Docs会很好 - 这将是一个非常高程度的自动化。

但不幸的是,大多数“自动”片段都是“空的”(例如,auto-response-fields.adoc只包含一个链接列表[] - 属性)。我想原因可能是REST控制器可能是由Spring Data REST动态创建的。目前我没有看到如何为他们重用Javadoc评论。

有没有办法为Spring Data REST提供的REST API自动生成REST Docs? 甚至有助于手动告诉Spring Auto REST Docs在请求和响应中使用哪些类而不是让它静态发现它 - 这可能吗?

我们还将HATEOAS“_links”添加到大多数响应资源中(通过将ResourceProcessors提供为Bean)。这些链接包含Spring REST Docs使用的“标题” - 如果我们使用HypermediaDocumentation.linkWithRel(...)列出所有这些链接。这有点多余,如果所有带有“标题”的_links都可以自动处理,那就太好了。 (但这可以通过在一些额外的代码中列出所有这些来完成,因此它没有Spring Data REST那么糟糕。)

如果有必要,我还可以为我所说的创建一个示例项目。

1 个答案:

答案 0 :(得分:0)

回答一个问题,即是否可以手动告诉Spring Auto REST Docs哪些类用于文档:

Spring Auto REST Docs允许指定用于文档的请求和响应类。这可以使用requestBodyAsTyperesponseBodyAsType来完成。在测试中它看起来像这样:

  .andDo(document("folderName",
    requestFields().requestBodyAsType(Command.class),                    
    responseFields().responseBodyAsType(CommandResult.class)));

这来自test in the example project