1

私は素晴らしいswagger2markupプラグインを使用して、Swagger が提供する REST API の Asciidoc ドキュメントを生成しています。私は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、 fromはfromController 1と同じレベルに表示されます。Method 2Controller 2

私の出力:

ここに画像の説明を入力

私が欲しいもの:

ここに画像の説明を入力

私が見ることができることから、このswagger2-markup Mavenプロジェクトテンプレートのようなローカルファイルからの生成を使用する場合、configプロパティを使用してタグでパスをグループ化するようswagger2markupに指示するプロパティを指定できますが、<swagger2markup.pathsGroupedBy>TAGS</swagger2markup.pathsGroupedBy>そのような構成はないようですSwagger2MarkupResultHandlerテストから使用する場合。唯一のオプションですwithMarkupLanguage()が、方法はありませんwithPathsGroupedBy()...

ここで何か不足していますか?

4

1 に答える 1

2

あなたが言及したように、swagger2markup.pathsGroupedByswagger2Markup によって提供されるプロパティがあり、パスをグループ化する方法を指定します。ただし、Swagger2MarkupResultHandler構成をサポートするための API は提供しません。

Swagger2Markup APIによると、

Swagger2Markup のプロパティは、クラス io.github.swagger2markup.Swagger2MarkupProperties で定義されています。プロパティは次の順序で考慮されます。

  1. Java システム プロパティ

  2. カスタム プロパティ

  3. デフォルトのプロパティ (Swagger2Markup に含まれる)

システム プロパティを使用して構成することができます。したがって、システム プロパティをテストに設定できswagger2markup.pathsGroupedByますTAGS

Java API で構成する場合は、Swagger2MarkupResultHandlerを拡張し、 Swagger2MarkupConfigBuilderhandle APIを使用してメソッドをオーバーライドできます。

于 2016-09-26T14:43:23.227 に答える