Я использую отличный плагин swagger2markup для создания документации Asciidoc для моего REST API, предоставленной Swagger. Я следил за документацией swagger2markup и использую интеграционный тест Spring MVC для создать разметку из моей конечной точки Springfox Swagger следующим образом (я использую Maven):
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = { AppConfig.class, SwaggerConfig.class })
public class DocumentationIT {
protected MockMvc mockMvc;
@Autowired
protected WebApplicationContext webApplicationContext;
@Rule
public JUnitRestDocumentation restDocumentation = new JUnitRestDocumentation("src/docs/asciidoc/apidoc/generated-snippets");
@Before
public void setUp(){
this.mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext)
.apply(documentationConfiguration(this.restDocumentation))
.build();
}
@Test
public void convertSwaggerToAsciiDoc() throws Exception {
this.mockMvc.perform(get("/v2/api-docs")
.accept(MediaType.APPLICATION_JSON))
.andDo(
Swagger2MarkupResultHandler
.outputDirectory("src/docs/asciidoc/apidoc")
.withExamples("src/docs/asciidoc/apidoc/generated-snippets").build())
.andExpect(status().isOk());
}
}
Все работает отлично, и все мои пути есть в моей окончательной документации, однако все пути отображаются непосредственно в корне и не группируются по ресурсам (т. е. по контроллерам), поэтому Method 1
из Controller 1
будут отображаться одновременно уровень как Method 2
от Controller 2
.
Мой вывод:
Что я хотел бы:
Из того, что я вижу, при использовании генерации из локального файла, как в этом swagger2-markup Maven шаблон проекта, вы можете указать свойство, чтобы указать swagger2markup сгруппировать ваши пути по тегам, используя свойство конфигурации <swagger2markup.pathsGroupedBy>TAGS</swagger2markup.pathsGroupedBy>
, однако при использовании Swagger2MarkupResultHandler
из теста такой конфигурации не существует. Единственный вариант - withMarkupLanguage()
, а withPathsGroupedBy()
метода нет...
Я что-то пропустил здесь?