springmvc 整合 swagger
一、pom.xml依賴管理
<!-- swagger-springmvc -->
<dependency>
<groupId>com.mangofactory</groupId>
<artifactId>swagger-springmvc</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>com.mangofactory</groupId>
<artifactId>swagger-models</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>com.wordnik</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.3.11</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>15.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml</groupId>
<artifactId>classmate</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>2.2.2</version>
</dependency>
<!-- swagger-springmvc dependencies -->
二、Swagger配置,自定義一個SwaggerConfig檔案
@Configuration
@EnableSwagger
public class SwaggerConfig {
@Autowired
private SpringSwaggerConfig springSwaggerConfig;
@Resource
private Boolean swaggerEnable;//通過ApplicationContent.xml 配置檔案注入swaggerEnable變數。
/**
* Required to autowire SpringSwaggerConfig
*/
public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig)
{
this.springSwaggerConfig = springSwaggerConfig;
}
@Bean
public SwaggerSpringMvcPlugin customImplementation()
{
return new SwaggerSpringMvcPlugin(this.springSwaggerConfig)
.apiInfo(apiInfo())
.enable(swaggerEnable)//通過配置pom.xml中swaggerEnable變數true,false實現不同生產環境中是否啟用Swagger.
.includePatterns(".*");
}
private ApiInfo apiInfo()
{
ApiInfo apiInfo = new ApiInfo(
"My Apps API Title",
"My Apps API Description",
"My Apps API terms of service",
"My Apps API Contact Email",
"My Apps API Licence Type",
"My Apps API License URL");
return apiInfo;
}
}
三、在ApplicationContent.xml配置
<mvc:annotation-driven/>
.....
.....
<!-- swagger檔案路徑 -->
<bean id="swaggerEnable" class="java.lang.Boolean">
<constructor-arg><value>${swaggerEnable}</value></constructor-arg>
</bean>
<bean class="com.cn.web.controller.SwaggerConfig" />
四、Controller介面,配置@ApiOperation
/**
* 介面
* @throws JsonProcessingException
*/
@ApiOperation(value = "獲取某球隊戰績", httpMethod = "GET", notes = "獲取某球隊戰績")
@RequestMapping(value="/test/getResult",produces = "application/json;charset=UTF-8")
public @ResponseBody String getResult(@RequestParam("matchnum") String xid) throws JsonProcessingException{
Map resultMap = new HashMap();
ErrorCode err = ErrorCode.success;
long start=System.currentTimeMillis();
JSONObject jsonObject=null;;
try {
jsonObject = service.getResult(xid);
if(jsonObject==null || jsonObject.isEmpty()){
err=ErrorCode.notHaveRecord;
jsonObject =new JSONObject();
}
long end=System.currentTimeMillis();
logger.info("介面,用時:"+(end-start));
resultMap.put("result", jsonObject);
} catch (ProcessException e) {
logger.error("介面異常", e);
}finally {
resultMap.put("errorCode", err.value);
resultMap.put("message", err.memo);
}
return JSON.toJSONString(resultMap);
}
五、Swagger掃描解析得到的是一個json文件,對於使用者不太友好。下面介紹swagger-ui,它能夠友好的展示解析得到的介面說明內容。
從https://github.com/swagger-api/swagger-ui 獲取其所有的 dist 目錄下東西放到需要整合的專案裡,本文放入 src/main/webapp/WEB-INF/swagger/ 目錄下。
修改swagger/index.html檔案,預設是從連線http://petstore.swagger.io/v2/swagger.json獲取 API 的 JSON,這裡需要將url值修改為http://{ip}:{port}/{projectName}/api-docs的形式,{}中的值根據自身情況填寫。比如我的url值為:http://localhost:8083/arrow-api/api-docs
因為swagger-ui專案都是靜態資源,restful形式的攔截方法會將靜態資源進行攔截處理,所以在springmvc配置檔案中需要配置對靜態檔案的處理方式。
//所有swagger目錄的訪問,直接訪問location指定的目錄
<mvc:resources mapping="/swagger/**" location="/WEB-INF/swagger/"/>
OK!大功告成,開啟瀏覽器直接訪問swagger目錄下的index.html檔案,即可看到介面文件說明了。注意訪問地址哦!看下圖:
相關推薦
SpringMVC整合Swagger(非Spring Boot)
width acf audio cnblogs restfu sele type img sep 1.新建項目 1.1 maven項目 1.2 設置項目名 1.3 設置本地maven 1.4 finish 2.添加依賴 打開pom文件,添加下面
SpringMVC整合Swagger外掛以及Swagger註解的簡單使用
一、簡介 Swagger 是一個規範和完整的框架,用於生成、描述、呼叫和視覺化 RESTful 風格的 Web 服務。總體目標是使客戶端和檔案系統作為伺服器以同樣的速度來更新 。介面的方法,引數和模型緊密整合到伺服器端的程式碼,允許API來始終保持同步。Swagger 讓部署管理和使用功能
springmvc 整合 swagger
一、pom.xml依賴管理 <!-- swagger-springmvc --><dependency><groupId>com.mangofactory</groupId><artifactId>swagg
基於idea15的SpringMVC整合Swagger(Maven篇)
對於像我這種web小白,想要整合這個功能又不懂maven走了很多彎路,搜尋了很多資料,結果還是搞不得不清不楚,最後還是被我搞明白了。 1. 首先建立maven專案。new project選到maven,勾選create from archetype,然後在下面的專案列
SpringMVC整合swagger
1:首先新增maven依賴的jar,網上有的只給出1-2個jar,但是實際上以下的jar都是需要的 <dependency> <groupId>com.mangofactory</groupId> <artifac
基於swagger進行介面文件的編寫 Maven + SpringMVC專案整合Swagger
0. 前言 近期忙於和各個銀行的代收介面聯調,根據遇到的問題,對之前編寫的介面進行了修改,需求收集和設計介面時想到了方方面面,生產環境下還是會遇到意想不到的問題,好在基本的執行邏輯已確定,因此只是對介面進行了一些微調,但是收錢無小事,之前在程式碼編寫時對引數進行了很多的校驗,程式碼修改之後一個引數的對不上都
SpringMVC整合Shiro和Swagger產生的路徑過濾問題
SSM整合Swagger和Shiro時出現的問題: 一:啟動swagger報錯Unable to infer base url. This is common when using dynamic servlet解決方法 在shiro配置檔案的自定義的過濾鏈中加上一下程式碼: <!-- swa
SpringMVC+FastJson+Swagger整合完整示例
一:目錄 一:基礎部分 簡介 fastjson api 二:實戰部分 Spring MVC + fastjson 整合 三:Swagger整合 二:基礎部分 1. FastJson 簡介 Fastjson是一個Java庫,可用於將Java
springboot整合springmvc+hibernate+swagger
SpringBoot+SpringMvc+Hibernate整合 SpringBoot+SpringMvc+Hibernate+Swagger簡單的整合步驟 。使用Eclipse工具1、新建一個maven專案 2、pom.xm設定 <project xmlns="http://ma
SpringBoot整合SpringMvc+Mybatis+Swagger
SpringBoot+SpringMvc+Mybatis整合 SpringBoot+SpringMvc+Mybatis+Swagger簡單的整合步驟 。使用Eclipse工具1、新建一個maven專案 1、建立一個Maven工程 2、pom.xm設定 <project xmln
Swagger與SpringMVC整合(附原始碼!!!)
筆者是做系統開發的,主要工作內容是負責給apk端提供後臺介面。以前的時候每出一次版本都要整合一次介面文件,而且還時不時的給apk同事解說各個介面的作用和引數型別等。最近工作相對比較輕鬆,於是想做一個線上介面測試和生成介面文件的工具。百度後發現了swagger這個工具,看網上
swagger與springmvc整合異常記錄
這幾天在專案中加入swagger,專案用的是springmvc,spring用的4.1.1,和大家一樣,在網上找了個帖子,看了下步驟不復雜,就愉快的開始做了,但是,但是就是這樣華麗而順暢的入坑了,折騰好幾個小時,記錄下,希望能節省隊友時間。 問題一 描述:頁面提示Fail
初次嘗試swagger springmvc整合 生成restful api文件
1、maven 所需jar包 <dependency> <groupId>com.mangofactory</groupId> <artifactId>swagger-springmvc<
Swagger 與 SpringMVC 整合的步驟
1、新增 Swagger 與 SpringMVC 的依賴 <dependency> <groupId>com.mangofactory</groupId> <artifactId>swagge
SpringMVC整合MongoDB
image 1.8 component size extends ges data- location one 首先,在pom文件中新增spring-data-mongodb的依賴: <dependency> <groupId>org.spr
Swagger2和springMVC整合測試
inter encoding src mybatis project constrain aop servle efault 對Swagger寫個獨立的工程測試,方便後續進行工程的整合,這裏做一下記錄 1.pom.xml--依賴的的包 1 <project xm
springmvc整合dubbo
控制 後臺 組織機構 myba 均衡 分離 數據庫 bookmark 自己 摘要: 開發工具 1.Eclipse IDE:采用Maven項目管理,模塊化。 2.代碼生成:通過界面方式簡單配置,自動生成相應代碼,目前包括三種生成方式(增刪改查):單表、一對多、樹結構。生成後的
Dubbo與Zookeeper、SpringMVC整合和使用
描述 取出 有變 monit work 需要 可用 jqgrid png 互聯網的發展,網站應用的規模不斷擴大,常規的垂直應用架構已無法應對,分布式服務架構以及流動計算架構勢在必行,Dubbo是一個分布式服務框架,在這種情況下誕生的。現在核心業務抽取出來,作為獨立的服務,使
springMVC整合Junit4進行單元測試
main方法 pri tail println test pan ati 測試的 tco 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 用Junit做單元測試的好處多多,博主領悟到了兩點。一是不用在每個類裏面都寫main方法然後去測試;二是可以得到每個方法執行
spring boot整合swagger ui (RESTFUL接口的文檔在線自動生成+功能測試功能軟件,前後端分離快速開發)
oot images user builder img iop spi update and swagger ui可以通過來攔截controller層,生成請求API,並將其展示在瀏覽器當中。我們可以直接通過瀏覽器來查看和調試接口。 1 添加maven依賴