swagger用于定义API文档。

1. 好处:

  • 前后端分离开发
  • API文档非常明确
  • 测试的时候不需要再使用URL输入浏览器的方式来访问Controller
  • 传统的输入URL的测试方式对于post请求的传参比较麻烦(当然,可以使用postman这样的浏览器插件)
  • springfox基于swagger2,兼容老版本
2. maven引入:
<!--springfox-->
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.4.4</version>
</dependency>
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.5.0</version>
</dependency>
3. 引入bean
@Configuration
@EnableSwagger2
@EnableWebMvc
@ComponentScan(basePackages ={"com.ect.fissmall.web.springfox"})public class Springfox {/**
     * 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);
//此处还有很多其他选项,包括路径过滤,api说明等}
}

说明:

  • 引入了一个注解@EnableSwagger2来启动swagger注解。(启动该注解使得用在controller中的swagger注解生效,覆盖的范围由@ComponentScan的配置来指定,这里默认指定为根路径"com.xxx.firstboot"下的所有controller)
  • 非springboot框架需要引入注解@EnableWebMvc
4. 展示:
从github(https://github.com/wordnik/swagger-ui)上下载Swagger-UI, 把该项目dist目录下的内容拷贝到项目:
修改index.html    url = "/v2/api-docs";
指定mvc映射,让外部能访问到dist目录下的index.html,如:
在springmvc中增加    <mvc:resources mapping="/dist/**" location="/WEB-INF/dist/"/>配置
5.常用注解:
  • @Api:用在类上,说明该类的作用
  • @ApiOperation:用在方法上,说明方法的作用
  • @ApiImplicitParams:用在方法上包含一组参数说明
  • @ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面
    • paramType:参数放在哪个地方

      • header-->请求参数的获取:@RequestHeader
      • query-->请求参数的获取:@RequestParam
      • path(用于restful接口)-->请求参数的获取:@PathVariable
      • body(不常用)
      • form(不常用)
    • name:参数名
    • dataType:参数类型
    • required:参数是否必须传
    • value:参数的意思
    • defaultValue:参数的默认值
  • @ApiResponses:用于表示一组响应
  • @ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息
    • code:数字,例如400
    • message:信息,例如"请求参数没填好"
    • response:抛出异常的类
  • @ApiModel:描述一个Model的信息(这种一般用在post创建的时候,使用@RequestBody这样的场景,请求参数无法使用@ApiImplicitParam注解进行描述的时候)
    • @ApiModelProperty:描述一个model的属性
注意:
在controller 使用springfox的
@ApiParam(name="queryCondition", value="查询条件", required=true) @RequestBody QueryCondition queryCondition
注解,可在页面看到QueryCondition类型参数

使用@ApiOperation(value = "Greeting by Name",  
            notes = "Say hello to the people",  
            response = SayingRepresentation.class,  
            position = 0)
可以看到返回值类型

其他注解:https://github.com/swagger-api/swagger-core/wiki/Annotations#apimodel

6.测试:

启动服务,浏览器输入"http://localhost:8080/dist/index.html"

参考:http://springfox.github.io/springfox/docs/current/#configuring-the-objectmapper

springfox集成教程相关推荐

  1. SpringMVC 3 Tiles 2.2.2集成教程

    Apache Tiles是基于Java的Web应用程序的流行且最常用的模板框架. 由于Struts 1.x使用Tiles作为其默认模板框架,因此Tiles变得更加流行. SpringMVC是一个MVC ...

  2. python 持续集成 教程_jenkins+python自动化测试持续集成教程

    一.首先我们安装Jenkins,我这里采用的是.msi应用程序,根据提示进行安装(傻瓜式),最后会打开默认的网页地址:http://localhost:8080 如果端口有冲突,可以去Jenkins的 ...

  3. MongoDB与Spring集成教程

    MongoDB与Spring集成教程 依赖POM 这里我们用到的是spring-data中一个集成mongodb的项目,首先在maven中添加对它的依赖,这里我用的是1.0.0.M5版本 <!- ...

  4. Spring JSF集成教程

    Spring JSF集成教程 欢迎来到Spring JSF集成教程.JSF是一个基于组件的框架,非常注重用户界面.而Spring框架核心原则是依赖注入.因此,将JSF与Spring框架集成是有意义的, ...

  5. iOS开发之第三方支付微信支付教程,史上最新最全第三方微信支付方式实现、微信集成教程,微信实现流程

    本章项目demo: https://github.com/zhonggaorong/weixinLoginDemo 本章不讲解: 微信sdk的集成 , 项目集成的文章请参照 (包含微信登录):   h ...

  6. 【环信IM集成教程】iOS端收到离线消息显示设置

    [集成教程]iOS端收到离线消息显示设置 查看更多官方集成教程:https://www.imgeek.org/video/https://www.imgeek.org/video/

  7. PHP在线支付接口集成教程

    网上支付(支付宝,财付通,易宝,银联)是电子支付的一种形式,它是通过第三方提供的与银行之间的支付接口进行的即时支付方式,这种方式的好处在于可以直接把资金从用户的银行卡中转账到网站账户中,汇款马上到账, ...

  8. NearbyService超简单集成教程get!助你打造一款更加便捷的社交聊天类应用

    背景 "附近的人"."面对面建群"."近距离点对点本地聊天"-这几个常见的功能都会出现在各大社交类软件中.可通常情况下,"附近的人 ...

  9. eai app_EAI的Spring集成教程

    eai app 课程大纲 Spring Integration是用于企业应用程序集成的开源框架. 这是一个轻量级的框架,建立在核心Spring框架之上. 它旨在支持开发事件驱动的体系结构和以消息为中心 ...

最新文章

  1. 在python中、如果异常并未被处理或捕捉_python异常处理(一)
  2. macbook配置java环境变量_如何安装Java和配置环境变量
  3. NeHe OpenGL教程 第四课:旋转
  4. Team Foundation Server 的 Service Pack 1(中文)也发布了,
  5. hiho 第155周 任务分配
  6. 线性代数矩阵秩的8大性质、重要定理以及关系
  7. java timezone_详解Java中的时区类TimeZone的用法
  8. 2023浙江工业大学计算机考研信息汇总
  9. 学计算机电脑屏幕多大,买电脑显示器的技巧 电脑显示屏多大尺寸好
  10. zabbix 5.0所有依赖包_最详细的 Zabbix 使用教程
  11. 【深度相机系列五】脑补了和库克的对话后,我发现了iPhone X深度相机选择的秘诀和方法
  12. OMF(Oracle Managed Files,Oracle管理的文件)介绍
  13. 【笔记】SQL查询语句的基本使用方法
  14. 1条命令解决不能完成此操作,因为项目“Karabiner-Elements”已被锁定
  15. H3C防火墙开启web流量监控命令
  16. 新商业模式:在区块链上寻找新机会
  17. JPA基础知识----JPA 基本注解,JPA API
  18. 医疗健康大数据基础知识
  19. 导购网站服务器,服务器导购:选购服务器应看哪些配置参数
  20. 算法——寻找序列平衡点

热门文章

  1. 达梦dsc搭建+dw
  2. 求1~n中0~9出现的次数
  3. Patch:虚拟DOM最核心的部分--如何对比虚拟DOM树,以及如果生成真实DOM
  4. windows 7 32 出现 werfault.exe的错误处理
  5. mac 卸载java7_mac卸载jdk
  6. html css齿轮滚动特效,CSS_纯CSS3实现滚动的齿轮动画效果,纯CSS写的齿轮效果。支持chrome - phpStudy...
  7. os.environ[‘CUDA_VISIBLE_DEVICES‘]指定GPU后,还是用的“0“卡
  8. 1000!末尾 有几个0
  9. 那个叫“中国移动”的精神病人就要被治愈了
  10. iOS中网络编程长连接