1. 最近参与公司接口编写,Android和IOS端都要调用这些接口,需要对接调试,如果没有一个接口文档,管理接口,别人用了接口,也不知道接口怎么用,接口上有什么参数,哪些是必须参数,哪些是非必须参数,于是研究了Swagger框架应用到项目中去,Swagger与Spring项目结合,Spring必须是4.0以上版本,下面是研究的小小demo:

1、引入Swagger的jar包,由于我的是Maven项目,所以在pom.xml中(注意Spring是4.0以上版本)

  1. <dependency>
  2. <groupId>io.springfox</groupId>
  3. <artifactId>springfox-swagger2</artifactId>
  4. <version>2.0.2</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>com.fasterxml.jackson.core</groupId>
  8. <artifactId>jackson-annotations</artifactId>
  9. <version>2.4.4</version>
  10. </dependency>
  11. <dependency>
  12. <groupId>com.fasterxml.jackson.core</groupId>
  13. <artifactId>jackson-databind</artifactId>
  14. <version>2.4.4</version>
  15. </dependency>
  16. <dependency>
  17. <groupId>com.fasterxml.jackson.core</groupId>
  18. <artifactId>jackson-core</artifactId>
  19. <version>2.4.4</version>
  20. </dependency>

2、新增Swagger配置代码

  1. package cn.;
  1. import org.springframework.context.annotation.Bean;
  2. import org.springframework.context.annotation.Configuration;
  3. import org.springframework.context.annotation.ComponentScan;
  4. import org.springframework.web.servlet.config.annotation.EnableWebMvc;
  5. import springfox.documentation.spi.DocumentationType;
  6. import springfox.documentation.spring.web.plugins.Docket;
  7. import springfox.documentation.swagger2.annotations.EnableSwagger2;
  8. @Configuration
  9. @EnableWebMvc
  10. @EnableSwagger2
  11. @ComponentScan(basePackages ={"com.test.api"})
  12. /**
  13. *
  14. * @author xiaozhou
  15. */
  16. public class SwaggerConfig {
  17. /**
  18. * Every Docket bean is picked up by the swagger-mvc framework - allowing for multiple
  19. * swagger groups i.e. same code base multiple swagger resource listings.
  20. */
  21. @Bean
  22. public Docket customDocket(){
  23. return new Docket(DocumentationType.SWAGGER_2);
  24. }
  25. }

3、修改applicationContext.xml

  1. <bean class="cn.conf.SwaggerConfig"/>

4、增加一个测试的ContactController

  1. @Api(value = "contacts-api", description = "有关于用户的CURD操作", position = 5)
  2. @Controller
  3. @RequestMapping("/contacts")
  4. public class ContactController {
  5. @Autowired ContactService contactService;
  6. @ResponseBody
  7. @RequestMapping(value="/1.0/contact/get.do/{id}",method=RequestMethod.GET)
  8. public Contact get(@PathVariable Long id) {
  9. return contactService.find(id);
  10. }
  11. @ApiOperation(value = "创建用户", notes = "返回用户实体对象", response = Contact.class, position = 2)
  12. @RequestMapping(value = "/1.0/contact/add.do", method=RequestMethod.POST)
  13. public void add(@RequestBody Contact contact,HttpServletResponse response) {
  14. contactService.create(contact);
  15. String location = ServletUriComponentsBuilder.fromCurrentRequest()
  16. .pathSegment("{id}").buildAndExpand(contact.getId())
  17. .toUriString();
  18. response.setHeader("Location",location);
  19. }
  20. @RequestMapping(value="/1.0/contact/update.do/{id}",method=RequestMethod.POST)
  21. @ApiResponses(value = {
  22. @ApiResponse(code = 200, message = "更新成功", response = Contact.class),
  23. @ApiResponse(code = 404, message = "找不到页面"),
  24. @ApiResponse(code = 500, message = "内部报错")}
  25. )
  26. public void update(@ApiParam(name="id", value="编号", required=true)@PathVariable Integer id,@RequestBody Contact contact) {
  27. contact.setId(id);;
  28. contactService.update(contact);
  29. }
  30. }

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

http://springfox.github.io/

Swagger+Spring MVC框架学习分享的更多相关文章

  1. Spring MVC 框架学习

    一.spirng的简介 Spring是一个开源框架,它由Rod Johnson创建.它是为了解决企业应用开发的复杂性而创建的.Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情. ...

  2. Swagger框架学习分享

    Swagger框架学习分享 转至元数据结尾 Created and last modified by 刘新宇 大约1分钟曾经 pageId=162045803#page-metadata-start& ...

  3. 【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回

    作者:ssslinppp      时间:2015年5月26日 15:32:51 1. 摘要 本文讲解如何利用spring MVC框架,实现ajax异步请求以及json数据的返回. Spring MV ...

  4. Spring MVC 框架的架包分析,功能作用,优点

    由于刚搭建完一个MVC框架,决定分享一下我搭建过程中学习到的一些东西.我觉得不管你是个初级程序员还是高级程序员抑或是软件架构师,在学习和了解一个框架的时候,首先都应该知道的是这个框架的原理和与其有关j ...

  5. 从零开始学 Java - 搭建 Spring MVC 框架

    没有什么比一个时代的没落更令人伤感的了 整个社会和人都在追求创新.进步.成长,没有人愿意停步不前,一个个老事物慢慢从我们生活中消失掉真的令人那么伤感么?或者说被取代?我想有些是的,但有些东西其实并不是 ...

  6. 【WEB】初探Spring MVC框架

    Spring MVC框架算是当下比较流行的Java开源框架.但实话实说,做了几年WEB项目,完全没有SpringMVC实战经验,乃至在某些交流场合下被同行严重鄙视“奥特曼”了.“心塞”的同时,只好默默 ...

  7. Spring MVC框架搭建

    Spring MVC篇一.搭建Spring MVC框架 本项目旨在搭建一个简单的Spring MVC框架,了解Spring MVC的基础配置等内容. 一.项目结构 本项目使用idea intellij ...

  8. Spring MVC框架下的第一个Hello World程序

    本程序是一个maven程序,使用maven方便管理jar包和程序,简化了操作步骤.本程序的目的是通过一个简单的程序,了解Spring MVC框架的基本工作流程,由简入繁的学习Spring MVC框架, ...

  9. 手写Spring MVC框架(一) 实现简易版mvc框架

    前言 前面几篇文章中,我们讲解了Spring MVC执⾏的⼤致原理及关键组件的源码解析,今天,我们来模仿它⼿写⾃⼰的mvc框架. 先梳理一下需要实现的功能点: tomcat加载配置文件web.xml: ...

随机推荐

  1. C语言处理CSV文件的方法(二)

    strtok函数的使用是一个老生常谈的问题了.该函数的作用很大,争议也很大.以下的表述可能与一些资料有区别或者说与你原来的认识有差异,因此,我尽量以实验为证.交代一下实验环境是必要的,win7+vc6 ...

  2. leetcode Sudoku Solver python

    #the define of Sudoku is on this link : http://sudoku.com.au/TheRules.aspx Write a program to solve ...

  3. js操作cookie,js判断浏览器属性,

    在默认情况下,只有设置cookie的网页才能读取该cookie.如果想让一个页面读取另一个页面设置的cookie,必须设置cookie的路径. http://www.jb51.net/article/ ...

  4. [转]前端CSS规范整理

    一.文件规范 1.文件均归档至约定的目录中. 具体要求通过豆瓣的CSS规范进行讲解: 所有的CSS分为两大类:通用类和业务类.通用的CSS文件,放在如下目录中: 基本样式库 /css/core  通用 ...

  5. kafka学习(三)-kafka集群搭建

    kafka集群搭建 下面简单的介绍一下kafka的集群搭建,单个kafka的安装更简单,下面以集群搭建为例子. 我们设置并部署有三个节点的 kafka 集合体,必须在每个节点上遵循下面的步骤来启动 k ...

  6. Dreamweaver中打开CodeSmith文件

    电脑环境:Windows2008+Dreamweaver 8英文版本 问题描述:Dreamweaver中默认打开文档时不支持打开CodeSmith模板文件对应的.cst后缀名文件,截图如下: 解决步骤 ...

  7. English - when用法

    一.作为副词,它有以下的用法:  1. 作为疑问副词,引导特殊疑问句,意为“什么时候:何时”.如: ( 1 ) When will they come back?( 2 ) What time wil ...

  8. You raise me up

    You raise me up, so I can stand on mountains;You raise me up, to walk on stormy seas;I am strong, wh ...

  9. [原创] 小而美 | Mac上鲜为人知,但极大提升效率的小工具

    热爱收集实用又好用的软件,工具类软件不在多,发挥作用,提高效率最重要~推荐几个压箱底的藏货 一.Noizio -自然而然的白噪声,专注工作 Noizio是一款OS X 下的白噪音应用,可以让自己觉着是 ...

  10. 红豆带你从零学C#系列之:使用集合组织相关数据

    ArrayList(数组列表) Why:如果一个公司有5名员工,一般我们会用长度为5的对象数组来存储信息,但要是有新员工来了,5个长度的数组就不够用了,因此我们需要一种能够根据需要自动分配容量的动态数 ...