[英]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.