SpringMVC項目接入Springfox實戰遇到的問題集合


 

為了方便的管理項目中API接口,目前總是會寫好接口后,然后又要去維護一個文檔,這對於開發者來說太心累了,

在網上找了好多關於API接口管理和生成文檔的資料,一次偶然跟51的大神交流發現了Swagger這個工具,功能強大,UI界面漂亮,並且支持在線測試等等,

對於這塊的使用網上已經有很多教程,我這里用的跟網上的那些不太一樣,部署好后遇到的問題的解決方式也不一樣,

這里只談要注意的地方和問題

先上今天直接摸索出來的效果圖:

 

詳細的請求api接口如下圖

這里我只是測試,用api配置了一個接口。然后Swagger自動生成出來了,包括以往的接口名都生成出來了,只是要參數詳細還得詳細配置,這段代碼是我參照網上的直接copy過來

 @RequestMapping(value="/1.0/contact/update.do/{id}",method=RequestMethod.POST)  

@ApiResponses(value = {  

@ApiResponse(code = 200, message = "更新成功", response = Contact.class),  

@ApiResponse(code = 404, message = "Not Found"),  

@ApiResponse(code = 500, message = "內部報錯")}  

  )  

public void update(@ApiParam(name="id", value="編號", required=true)@PathVariable Integer id,@RequestBody Contact contact) {  

    contact.setId(id);;  

    contactService.update(contact);  

  }

我這里不詳細介紹了,

想了解的直接http://blog.csdn.net/zth1002/article/details/46927187

首先引入這些包

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.4.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.4.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.4.4</version>
</dependency>

<
dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.2.2</version>
</dependency>

<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.2.2</version>
</dependency>

<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.5.3</version>
</dependency>

<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-staticdocs</artifactId>
<version>2.2.2</version>
<scope>test</scope>
</dependency>

這些pom包里面包括ui靜態資源,引入后就不用去git下載ui靜態資源了

第二需要注意的,就是寫一個SwaggerConfig ,然后加上注解配置開啟如圖
如不會看這里
http://blog.csdn.net/zth1002/article/details/46927187

這里的配置好弄,支持正則匹配。如果你覺得太復雜,就直接像我這樣配置就可以了,appinfo里面可以配置文檔的各種屬性。

第三個需要注意的。是SwaggerConfigUi資源里面對mvc-controller的訪問是直接這樣
/swagger-resources ,
這對於我們設定了指定后綴的mvc-action 來說,就識別不到了,web系統會報404錯誤,也就是說UI資源里面的html對動態action的請求是不帶后綴的
除了這個
/swagger-resources,還有一個apidoc 也是請求的一個controller,但是沒帶后綴系統找不到
那這里再給它在web。xml里面配置url映射。


請求
http://localhost:8080//swagger-ui.html#/ 可以直接訪問了
當然也可以后面給它加上權限

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM