生活随笔
收集整理的這篇文章主要介紹了
springMVC整合swagger(亲自试验完全可用)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
swagger是什么:
[plain]?view plaincopyprint?
Swagger?是一款RESTFUL接口的文檔在線自動生成+功能測試功能軟件。本文簡單介紹了在項目中集成swagger的方法和一些常見問題。如果想深入分析項目源碼,了解更多內容,見參考資料。??Swagger?是一個規范和完整的框架,用于生成、描述、調用和可視化?RESTful?風格的?Web?服務。總體目標是使客戶端和文件系統作為服務器以同樣的速度來更新。文件的方法,參數和模型緊密集成到服務器端的代碼,允許API來始終保持同步。Swagger?讓部署管理和使用功能強大的API從未如此簡單。??
將swagger集成到springmvc項目中去:
首先添加swagger依賴,作者用的maven管理:
[html]?view plaincopyprint?
??<dependency>????????<groupId>com.mangofactory</groupId>????????<artifactId>swagger-springmvc</artifactId>????????<version>1.0.2</version>????</dependency>??<dependency>??????<groupId>com.fasterxml.jackson.core</groupId>??????<artifactId>jackson-core</artifactId>??????<version>2.5.1</version>??</dependency>??<dependency>??????<groupId>com.fasterxml.jackson.core</groupId>??????<artifactId>jackson-databind</artifactId>??????<version>2.5.1</version>??</dependency>??<dependency>??????<groupId>com.fasterxml.jackson.core</groupId>??????<artifactId>jackson-annotations</artifactId>??????<version>2.5.1</version>??</dependency>???
創建自定義swagger初始化配置文件:
[java]?view plaincopyprint?
package?com.yrok.swagger;????import?org.springframework.beans.factory.annotation.Autowired;??import?org.springframework.context.annotation.Bean;????import?com.mangofactory.swagger.configuration.SpringSwaggerConfig;??import?com.mangofactory.swagger.models.dto.ApiInfo;??import?com.mangofactory.swagger.plugin.EnableSwagger;??import?com.mangofactory.swagger.plugin.SwaggerSpringMvcPlugin;????@EnableSwagger??public?class?SwaggerConfig?{????????private?SpringSwaggerConfig?springSwaggerConfig;????????????????@Autowired??????public?void?setSpringSwaggerConfig(SpringSwaggerConfig?springSwaggerConfig)??????{??????????this.springSwaggerConfig?=?springSwaggerConfig;??????}??????????????????@Bean??????public?SwaggerSpringMvcPlugin?customImplementation()??????{??????????return?new?SwaggerSpringMvcPlugin(this.springSwaggerConfig)??????????????????.apiInfo(apiInfo())??????????????????.includePatterns(".*?");??????}????????private?ApiInfo?apiInfo()??????{??????????ApiInfo?apiInfo?=?new?ApiInfo(??????????????????"springmvc搭建swagger",??????????????????"spring-API?swagger測試",??????????????????"My?Apps?API?terms?of?service",??????????????????"534560449@qq.com",??????????????????"web?app",??????????????????"My?Apps?API?License?URL");??????????return?apiInfo;??????}??}??
將swagger配置類及依賴SpringSwaggerConfig加載到spring容器中:
[html]?view plaincopyprint?
??<mvc:annotation-driven?/>????<bean?class="com.mangofactory.swagger.configuration.SpringSwaggerConfig"?/>????<bean?class="com.yrok.swagger.SwaggerConfig"?/>??
配置相關controller的api:
[java]?view plaincopyprint?
package?com.yrok.controller;????import?javax.annotation.Resource;????import?org.springframework.stereotype.Controller;??import?org.springframework.web.bind.annotation.RequestMapping;??import?org.springframework.web.bind.annotation.RequestParam;??import?org.springframework.web.bind.annotation.ResponseBody;????import?com.wordnik.swagger.annotations.Api;??import?com.wordnik.swagger.annotations.ApiOperation;??import?com.wordnik.swagger.annotations.ApiParam;??import?com.yrok.entity.User;??import?com.yrok.service.UserService;??@Api(value="user")??@Controller??@RequestMapping(value="/user")??public?class?UserController?{????????@Resource??????UserService?userService;????????@RequestMapping(value?=?"/getUser")??????@ResponseBody??????@ApiOperation(value="根據ID獲取用戶信息",httpMethod="GET",notes="get?user?by?id",response=User.class)??????public?User?getUser(@ApiParam(required=true,value="用戶ID",name="userId")@RequestParam(value="userId")Integer?userId)?{??????????return?userService.getUserByID(userId);??????}????????}??
和Swagger UI的集成:
在GitHub上將swaggerui下載,地址:https://github.com/swagger-api/swagger-ui
解壓后將dist文件夾中所有的文件拷貝到webapp/swagger這里的swagger是作者自定義的你可以寫為自己創建的目錄。
修改index.html中的 http://petstore.swagger.wordnik.com/v2/swagger.json修改為自己項目路徑+api-docs,例如:
http://localhost:8080/SSMSwagger/api-docs:SSMSwagger為項目名稱。
在spring-mvc.xml中過濾掉swagger-ui的文件:
[html]?view plaincopyprint?
??<mvc:resources?mapping="/swagger/**"?location="/swagger/"?/>??
到這里基本完成了springmvc和swagger的整合,下面是測試結果:
在瀏覽器中訪問:http://localhost:8080/SSMSwagger/swagger/index.html#/user/getUser
到此,本篇文章已經結束,下面分享其他資料和參考:
參考地址:
官網:http://swagger.io/
GitHub:
swagger-springmvc:https://github.com/martypitt/swagger-springmvc
swagger-ui:https://github.com/swagger-api/swagger-ui
swagger-core:https://github.com/swagger-api/swagger-core
swagger-spec:https://github.com/swagger-api/swagger-spec
總結
以上是生活随笔為你收集整理的springMVC整合swagger(亲自试验完全可用)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。