生活随笔
收集整理的這篇文章主要介紹了
springMVC整合swagger(亲自试验完全可用)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
swagger是什么:
[plain]?view plaincopyprint?
Swagger?是一款RESTFUL接口的文檔在線自動(dòng)生成+功能測(cè)試功能軟件。本文簡(jiǎn)單介紹了在項(xiàng)目中集成swagger的方法和一些常見(jiàn)問(wèn)題。如果想深入分析項(xiàng)目源碼,了解更多內(nèi)容,見(jiàn)參考資料。??Swagger?是一個(gè)規(guī)范和完整的框架,用于生成、描述、調(diào)用和可視化?RESTful?風(fēng)格的?Web?服務(wù)。總體目標(biāo)是使客戶端和文件系統(tǒng)作為服務(wù)器以同樣的速度來(lái)更新。文件的方法,參數(shù)和模型緊密集成到服務(wù)器端的代碼,允許API來(lái)始終保持同步。Swagger?讓部署管理和使用功能強(qiáng)大的API從未如此簡(jiǎn)單。??
將swagger集成到springmvc項(xiàng)目中去:
首先添加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>???
創(chuàng)建自定義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測(cè)試",??????????????????"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"?/>??
配置相關(guān)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="根據(jù)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是作者自定義的你可以寫為自己創(chuàng)建的目錄。
修改index.html中的 http://petstore.swagger.wordnik.com/v2/swagger.json修改為自己項(xiàng)目路徑+api-docs,例如:
http://localhost:8080/SSMSwagger/api-docs:SSMSwagger為項(xiàng)目名稱。
在spring-mvc.xml中過(guò)濾掉swagger-ui的文件:
[html]?view plaincopyprint?
??<mvc:resources?mapping="/swagger/**"?location="/swagger/"?/>??
到這里基本完成了springmvc和swagger的整合,下面是測(cè)試結(jié)果:
在瀏覽器中訪問(wèn):http://localhost:8080/SSMSwagger/swagger/index.html#/user/getUser
到此,本篇文章已經(jīng)結(jié)束,下面分享其他資料和參考:
參考地址:
官網(wǎng):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
總結(jié)
以上是生活随笔為你收集整理的springMVC整合swagger(亲自试验完全可用)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。