Spring Rest Docs代码段模板将被忽略

时间:2018-08-30 09:28:43

标签: java spring spring-boot asciidoctor spring-restdocs

我试图为Spring Rest Docs文档创建自定义代码段模板。我一直在关注reference guide

我遇到的第一个问题是按照指南的说明,在src/test/resources/org/springframework/restdocs/templates/asciidoctor/path-parameters.snippet中创建.snippet文件时遇到的是IntelliJ。 IntelliJ将其注册为jShell片段文件,从一眼看就与AsciiDoc片段不同。因此,我进入Settings -> Editor -> File Types,并将jShell Snippet从* .snippet更改为* .snippetOld。然后,我创建了一个名为Snippet的文件类型,并将其模式设置为* .snippet。现在,这解决了将片段模板读取为jShell文件的问题。因此,我创建的.snippet模板不再会出现编译/验证错误。

但是现在当我在删除以前的现有adoc文件之后运行我的嘲笑Mvc测试时。如果不使用default template,应该使用我的自定义模板的path-perameters.adoc文件现在根本不会生成。

在我的MockMvc测试中,我有以下内容

//Given
RestDocumentationResultHandler document = makeDocument("name-of-method");
document.document(
    pathParameters(//do path parameters)
    requestParameters(
        parameterWithName("Month").description("The month requested").attributes(
        key("type").value("integer"), key("constraints").value("more than 0 & less than 13.")
        ),
        parameterWithName("Year").description("The year requested").attributes(
            key("type").value("integer"), key("constraints").value("more than 1970 and less than current year")
        )
    ),
    responseField(//Do response fields)
);

// When
mvc.perform(get(REQUEST_PATH, USERID)
          .contentType(MediaType.APPLICATION_JSON)
          .param("month", "8")
          .param("year", "2018"))

          // Then
          .andExpect(status().isOk())
          .andDo(document);

我的代码段模板如下:

   |===
   |Parameter|Description|Type|Constraints

   |{{parameter}}
   |{{description}}
   |{{type}}
   |{{constraints}}

有人可以指出我在参考指南中做错了什么/与我做错了什么,以及如何解决它才能使模板正常工作?

1 个答案:

答案 0 :(得分:0)

我怀疑您未获得输出的原因是您将path-parametersrequest-parameters混淆了。您的文档配置指定了请求参数,但是您自定义了路径参数模板

以下是摘要模板的完整列表:

  • curl-request.snippet
  • http-request.snippet
  • http-response.snippet
  • httpie-request.snippet
  • links.snippet
  • path-parameters.snippet
  • request-body.snippet
  • request-fields.snippet
  • request-headers.snippet
  • request-parameters.snippet
  • request-part-body.snippet
  • request-part-fields.snippet
  • request-parts.snippet
  • response-body.snippet
  • response-fields.snippet
  • response-headers.snippet

来源: