Шаблон фрагмента документа Spring Rest Docs игнорируется - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь создать собственный шаблон сниппета для документирования Spring Rest Docs. Я следовал справочному руководству

Моя первая проблема, с которой я столкнулся, была в IntelliJ при создании файла .snippet в src/test/resources/org/springframework/restdocs/templates/asciidoctor/path-parameters.snippet в соответствии с инструкциями руководства. IntelliJ регистрирует его как файл фрагмента jShell, который на первый взгляд отличается от фрагмента AsciiDoc. Поэтому я вошел в Settings -> Editor -> File Types и изменил jShell Snippet с * .snippet на * .snippetOld. Затем я создал тип файла с именем Snippet и поместил его в шаблон * .snippet. Теперь это устраняет проблему, связанную с тем, что шаблон сниппета читается как файл jShell. Поэтому созданный мной шаблон .snippet больше не получает ошибок компиляции / проверки.

Но теперь, когда я запускаю свой тест mockMvc после удаления предыдущих существующих файлов adoc. Файл 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 голосов
/ 28 ноября 2018

Я подозреваю, что причина, по которой вы не получили вывод, состоит в том, что вы перепутали path-parameters с request-parameters. В вашей конфигурации документации указаны параметры запроса, но вы настроили шаблон параметров пути

Вот полный список шаблонов фрагментов:

  • локон-request.snippet
  • HTTP-request.snippet
  • HTTP-response.snippet
  • httpie-request.snippet
  • links.snippet
  • путь-parameters.snippet
  • запрос-body.snippet
  • запрос-fields.snippet
  • запрос-headers.snippet
  • запрос-parameters.snippet
  • запрос-часть-body.snippet
  • запрос-часть-fields.snippet
  • запрос-parts.snippet
  • ответ-body.snippet
  • ответ-fields.snippet
  • ответ-headers.snippet

Источник:

...