簡體   English   中英

修改swagger API列表

[英]modify swagger api listing

我正在使用Jersey 2作為REST API的JAX-RS實現。

另外,我還成功配置了swagger以啟用API列表的生成。 我正在使用靜態swagger-ui項目來呈現帶有描述的頁面。

我的行家pom看起來像這樣:

    <dependency>
            <groupId>org.glassfish.jersey.core</groupId>
            <artifactId>jersey-server</artifactId>
            <version>2.5.1</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet-core</artifactId>
        <version>2.5.1</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.ext</groupId>
        <artifactId>jersey-spring3</artifactId>
        <version>2.5.1</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-json-jackson</artifactId>
        <version>2.5.1</version>
    </dependency>
    <dependency>
        <groupId>com.wordnik</groupId>
        <artifactId>swagger-jersey2-jaxrs_2.10</artifactId>
        <version>1.3.2</version>
    </dependency>

但是,當在Java資源中描述我的一些方法和參數時,我發現它太冗長而無法與代碼混合。

因此,我決定使用一些外部機制來提供描述。 我可以想象一些文件,在其中輸入方法名稱和參數以及附帶的描述。 生成結果API列表JSON文件時,我想將Java資源文件中的信息與外部文件中的信息合並。

根據谷歌搜索和閱讀材料,我可以看到API列表不是存儲在文件中,而是動態生成的。 因此,我需要找到一種方法來破解生成API列表以添加我的自定義描述的過程。

我為此嘗試使用ContainerResponseFilter,並且可以使用生成的API列表對象攔截響應實體,但是此對象是scala只讀對象。 所以我不能覆蓋描述屬性。

有什么方法可以使用我的自定義信息修改我的API列表?

我認為使用過濾器是最好的主意。 您不需要修改 Scala對象,只需使用新描述從該對象創建一個新對象。 只要看看Swagger創建對象並模仿它的方式即可。

自從我看過swagger以來已經有一段時間了,但是您可以只創建一個包含swagger標記的專用接口,然后實現該接口嗎? 這並不是您要查找的內容,但至少它會使詳細信息脫離具體的類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM