Swagger+Spring MVC框架学习分享
- 最近参与公司接口编写,Android和IOS端都要调用这些接口,需要对接调试,如果没有一个接口文档,管理接口,别人用了接口,也不知道接口怎么用,接口上有什么参数,哪些是必须参数,哪些是非必须参数,于是研究了Swagger框架应用到项目中去,Swagger与Spring项目结合,Spring必须是4.0以上版本,下面是研究的小小demo:
1、引入Swagger的jar包,由于我的是Maven项目,所以在pom.xml中(注意Spring是4.0以上版本)
- <dependency>
- <groupId>io.springfox</groupId>
- <artifactId>springfox-swagger2</artifactId>
- <version>2.0.2</version>
- </dependency>
- <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>
2、新增Swagger配置代码
- package cn.;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.context.annotation.ComponentScan;
- import org.springframework.web.servlet.config.annotation.EnableWebMvc;
- import springfox.documentation.spi.DocumentationType;
- import springfox.documentation.spring.web.plugins.Docket;
- import springfox.documentation.swagger2.annotations.EnableSwagger2;
- @Configuration
- @EnableWebMvc
- @EnableSwagger2
- @ComponentScan(basePackages ={"com.test.api"})
- /**
- *
- * @author xiaozhou
- */
- public class SwaggerConfig {
- /**
- * Every Docket bean is picked up by the swagger-mvc framework - allowing for multiple
- * swagger groups i.e. same code base multiple swagger resource listings.
- */
- @Bean
- public Docket customDocket(){
- return new Docket(DocumentationType.SWAGGER_2);
- }
- }
3、修改applicationContext.xml
- <bean class="cn.conf.SwaggerConfig"/>
4、增加一个测试的ContactController
- @Api(value = "contacts-api", description = "有关于用户的CURD操作", position = 5)
- @Controller
- @RequestMapping("/contacts")
- public class ContactController {
- @Autowired ContactService contactService;
- @ResponseBody
- @RequestMapping(value="/1.0/contact/get.do/{id}",method=RequestMethod.GET)
- public Contact get(@PathVariable Long id) {
- return contactService.find(id);
- }
- @ApiOperation(value = "创建用户", notes = "返回用户实体对象", response = Contact.class, position = 2)
- @RequestMapping(value = "/1.0/contact/add.do", method=RequestMethod.POST)
- public void add(@RequestBody Contact contact,HttpServletResponse response) {
- contactService.create(contact);
- String location = ServletUriComponentsBuilder.fromCurrentRequest()
- .pathSegment("{id}").buildAndExpand(contact.getId())
- .toUriString();
- response.setHeader("Location",location);
- }
- @RequestMapping(value="/1.0/contact/update.do/{id}",method=RequestMethod.POST)
- @ApiResponses(value = {
- @ApiResponse(code = 200, message = "更新成功", response = Contact.class),
- @ApiResponse(code = 404, message = "找不到页面"),
- @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);
- }
- }
5、添加Swagger UI配置
从网上下载SwaggerUI项目,将dist下所有内容拷贝到本地项目webapp下面如下图
6、修改index修改index.html
将index.html中http://petstore.swagger.wordnik.com/v2/swagger.json修改为http://localhost:8080/v2/api-docs
7、启动项目,访问http://localhost:8080/v2/index.html即可看到如下所示页面:
参考资料:
https://raibledesigns.com/rd/entry/documenting_your_spring_api_with
http://www.2cto.com/kf/201502/376959.html
http://www.3pillarglobal.com/insights/restful-api-documentation-using-swagger-and-spring-mvc
Swagger+Spring MVC框架学习分享的更多相关文章
- Spring MVC 框架学习
一.spirng的简介 Spring是一个开源框架,它由Rod Johnson创建.它是为了解决企业应用开发的复杂性而创建的.Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情. ...
- Swagger框架学习分享
Swagger框架学习分享 转至元数据结尾 Created and last modified by 刘新宇 大约1分钟曾经 pageId=162045803#page-metadata-start& ...
- 【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回
作者:ssslinppp 时间:2015年5月26日 15:32:51 1. 摘要 本文讲解如何利用spring MVC框架,实现ajax异步请求以及json数据的返回. Spring MV ...
- Spring MVC 框架的架包分析,功能作用,优点
由于刚搭建完一个MVC框架,决定分享一下我搭建过程中学习到的一些东西.我觉得不管你是个初级程序员还是高级程序员抑或是软件架构师,在学习和了解一个框架的时候,首先都应该知道的是这个框架的原理和与其有关j ...
- 从零开始学 Java - 搭建 Spring MVC 框架
没有什么比一个时代的没落更令人伤感的了 整个社会和人都在追求创新.进步.成长,没有人愿意停步不前,一个个老事物慢慢从我们生活中消失掉真的令人那么伤感么?或者说被取代?我想有些是的,但有些东西其实并不是 ...
- 【WEB】初探Spring MVC框架
Spring MVC框架算是当下比较流行的Java开源框架.但实话实说,做了几年WEB项目,完全没有SpringMVC实战经验,乃至在某些交流场合下被同行严重鄙视“奥特曼”了.“心塞”的同时,只好默默 ...
- Spring MVC框架搭建
Spring MVC篇一.搭建Spring MVC框架 本项目旨在搭建一个简单的Spring MVC框架,了解Spring MVC的基础配置等内容. 一.项目结构 本项目使用idea intellij ...
- Spring MVC框架下的第一个Hello World程序
本程序是一个maven程序,使用maven方便管理jar包和程序,简化了操作步骤.本程序的目的是通过一个简单的程序,了解Spring MVC框架的基本工作流程,由简入繁的学习Spring MVC框架, ...
- 手写Spring MVC框架(一) 实现简易版mvc框架
前言 前面几篇文章中,我们讲解了Spring MVC执⾏的⼤致原理及关键组件的源码解析,今天,我们来模仿它⼿写⾃⼰的mvc框架. 先梳理一下需要实现的功能点: tomcat加载配置文件web.xml: ...
随机推荐
- 关于Condition Variable的一些思考
可能大家都使用过condition variable(之后称cv),一些博客也对cv做了介绍,但是有的说的不完全正确,甚至有误导使用者的倾向,其实最合理的使用方式是查阅文档, 如果你英语还ok的话,h ...
- 易宝网上支付平台的PHP接口代码
本代码参照自韩顺平149讲视频后5讲,需要学习的朋友可以参考本代码 这是测试图片: 以下是代码部分: <?php function HmacMd5($data, $key) { //需要配置环境 ...
- QF——网络之JSON解析和XML解析
JSON解析和XML解析: 用苹果原生的代理方式的网络请求后返回的都是二进制数据(NSData). 若是json,则通过NSJSONSerialization把NSData数据转换为JSON对象. N ...
- Others in life
耗电量主要是与电机有关,800W电机在48V下的工作电流大约是800/48=16.7A,因此其工作时间主要取决于电池的容量,如果电池容量是20Ah,那么大概也就连续工作1个小时左右,也就是30-40k ...
- 【Chromium中文文档】Web安全研究
转载请注明出处:https://ahangchen.gitbooks.io/chromium_doc_zh/content/zh//General_Architecture/Extension_Sec ...
- 项目中引用ThinkPHP框架
ThinkPHP是一个宽度.兼容且简单的国产的轻量级框架,具有优良的性能,并且非常注重易用性. 那么,我们该如何将ThinkPHP引入自己的项目中,使得自己的项目可以使用这款优良的框架呢? 首先介绍下 ...
- (15)Visual Studio中使用PCL项目加入WCF WebService参考
原文 Visual Studio中使用PCL项目加入WCF WebService参考 Visual Studio中使用PCL项目加入WCF WebService参考 作者:Steven Chang 2 ...
- 从零开始学 iOS 开发的15条建议
事情困难是事实,再困难的事还是要每天努力去做是更大的事实. 因为我是一路自学过来的,并且公认没什么天赋的前提下,进步得不算太慢,所以有很多打算从零开始的朋友会问我,该怎么学iOS开发.跟粉丝群的朋友交 ...
- IE兼容性bug汇总
1.IE6的双边距BUG. 发生条件:如果有元素是浮动元素,则该元素与它的父元素(一般是一个容器)直接相接触(中间不能隔着其他元素)的左或右的边距就会产生双倍边距,也意味着相邻的兄弟元素不可能会产生双 ...
- perl 解json数组
<pre name="code" class="cpp">http://11.36.10.82:4000/api/bus?bus=307&f ...