1.pom.xml文件中加入下列依赖:

<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency> <dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
2.创建一个Swagger2类:
//对swagger的配置
@Configuration
@EnableSwagger2
public class Swagger2 {
@Bean
public Docket createRestApi(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.demo"))//扫描接口的包
.paths(PathSelectors.regex("/rest/.*"))//被文档展示的接口的地址,这里只展示rest/地址下的
.build();
} public ApiInfo apiInfo(){
return new ApiInfoBuilder()
.title("spring boot利用swagger构建api文档")
.description("简单优雅的rest风格")
.termsOfServiceUrl("http://www.maycpou.com")//文档遵循的开发协议的展现网址
.version("1.0")//版本
.build();
}
}
3.启动项目后访问http://localhost:8888/swagger-ui.html
4.针对swagger2中还有很多的注解写在接口或者传入传出参数上面,来添加在swagger文档界面增加对该接口或者参数的说明如:
接口方法:
 @ApiOperation(value = "添加文章",notes = "添加新的文章",tags = "Article",httpMethod = "POST")//方法的swagger注释
// @ApiImplicitParams({
// @ApiImplicitParam(name = "id" ,value = "文章Id",required = true,dataType = "String"),
// @ApiImplicitParam(name = "name" ,value = "文章名称",required = true,dataType = "String"),
// })//这个注解是针对请求参数是@RequestParam方式的时候,可以给每个参数添加swagger文档上的注释
@ApiResponses({//方法返回值的swagger注释
@ApiResponse(code = 200,message = "成功",response = AjaxResponse.class),
@ApiResponse(code = 400,message = "用户输入错误",response = AjaxResponse.class),
@ApiResponse(code = 500,message = "系统内部错误",response = AjaxResponse.class)
})
@RequestMapping(value = "/article", method = RequestMethod.POST,produces = "application/json")
//上面的注解等同于@PostMapping("/article")
public AjaxResponse saveArticle(@RequestBody Article article){//使用@RequestBody的方式接收参数,可以自动的将传入的json转化装配为对象
//如果使用@RequestParam的方式接受参数就要将Article对象里面的字段全部写在传入参数中
log.info("saveArticle:{}",article);
return AjaxResponse.success();
} 传出参数:
@Data
@ApiModel//用于swagger的接口返回实体
public class AjaxResponse {
@ApiModelProperty("是否成功")//swagger中显示的返回字段的注释
private boolean isok;
private int code;
private String message;
private Object data;
private AjaxResponse(){ } public static AjaxResponse success(){
AjaxResponse resultBean = new AjaxResponse();
resultBean.setIsok(true);
resultBean.setCode(200);
resultBean.setMessage("success");
return resultBean;
} public static AjaxResponse success(Object data){
AjaxResponse resultBean = new AjaxResponse();
resultBean.setIsok(true);
resultBean.setCode(200);
resultBean.setMessage("success");
resultBean.setData(data);
return resultBean;
}
}
												

为spring boot 写的Controller中的rest接口配置swagger的更多相关文章

  1. 安装使用Spring boot 写一个hello1

    一.创建springboot 项目 二.进行代编写 1.连接数据库:application.properties里配置 spring.datasource.driverClassName=com.my ...

  2. Spring Boot在反序列化过程中:jackson.databind.exc.InvalidDefinitionException cannot deserialize from Object value

    错误场景 用Spring boot写了一个简单的RESTful API,在测试POST请求的时候,request body是一个符合对应实体类要求的json串,post的时候报错. 先贴一段error ...

  3. Spring Boot 监听 Activemq 中的特定 topic ,并将数据通过 RabbitMq 发布出去

    1.Spring Boot 和 ActiveMQ .RabbitMQ 简介 最近因为公司的项目需要用到 Spring Boot , 所以自学了一下, 发现它与 Spring 相比,最大的优点就是减少了 ...

  4. spring boot 项目从配置文件中读取maven 的pom.xml 文件标签的内容。

    需求: 将pom.xml 文件中的版本号读取到配置文件并打印到日志中. 第一步: 在pom.xml 中添加以下标签. 第二步: 将version 标签的值读取到配置文件中 这里使用 @@  而不是  ...

  5. Spring Boot入门(四):开发Web Api接口常用注解总结

    本系列博客记录自己学习Spring Boot的历程,如帮助到你,不胜荣幸,如有错误,欢迎指正! 在程序员的日常工作中,Web开发应该是占比很重的一部分,至少我工作以来,开发的系统基本都是Web端访问的 ...

  6. 【spring boot】SpringBoot初学(3)– application配置和profile隔离配置

    前言 github: https://github.com/vergilyn/SpringBootDemo 说明:我代码的结构是用profile来区分/激活要加载的配置,从而在一个project中写各 ...

  7. Spring Boot (七): Mybatis极简配置

    Spring Boot (七): Mybatis极简配置 1. 前言 ORM 框架的目的是简化编程中的数据库操作,经过这么多年的发展,基本上活到现在的就剩下两家了,一个是宣称可以不用写 SQL 的 H ...

  8. Spring Boot 2.X(五):MyBatis 多数据源配置

    前言 MyBatis 多数据源配置,最近在项目建设中,需要在原有系统上扩展一个新的业务模块,特意将数据库分库,以便减少复杂度.本文直接以简单的代码示例,如何对 MyBatis 多数据源配置. 准备 创 ...

  9. Java | Spring Boot Swagger2 集成REST ful API 生成接口文档

      Spring Boot Swagger2 集成REST ful API 生成接口文档 原文 简介 由于Spring Boot 的特性,用来开发 REST ful 变得非常容易,并且结合 Swagg ...

随机推荐

  1. Java - 闭包

    概述 简单介绍 闭包 1. 聚合关系 概述 常见的 类间关系 场景 类 A 主要类 持有 类B 的实例 有点行为, 需要 类 B 的介入 类 B 有自己的行为 A 会在某些时候调用 B 的行为 代码示 ...

  2. session跨域共享问题解决方案

    在讨论 session 跨域共享问题之前,我们首先要了解 session 做了什么,没做什么 1.HTTP是无状态的,也就是说服务器不知道谁访问过他,但是有时间,又需要我们去保留这个状态比如说用户的登 ...

  3. MSComm控件进行串口编程的基本步骤

    Visual C++为我们提供了一种好用的ActiveX控件Microsoft Communications Control(即MSComm)来支持应用程序对串口的访问,在应用程序中插入MSComm控 ...

  4. Unknown failure (Failure - not installed for 0) 、Error while Installing APKs

    解决方法一: 设置 -> 更多设置 -> 开发者选项 ->关闭启用MIUI优化 解决方法二:(这种方法就用不了apply changes的功能了) 描述:在一些机型上安装软件 提示卸 ...

  5. 7、Maven插件

    什么是maven插件? maven 实际上是一类依赖插件执行的框架,每个任务实际上是由插件完成,Maven插件通常被用来 创建jar文件 创建war文件 编译代码文件 代码单元测试 创建工程文档 创建 ...

  6. PS绘制Logo

    1. 2. 3. 4. 5. 6. 第2步点击“圆1”应点击图层左边的缩览图才能获取选区 7. 8. 9. 10. 11. 12.

  7. iOS 开发之函数式编程思想(Functional Programming)

    函数式编程(Functional Programming), 函数式编程强调的函数:1.不依赖外部状态:2.不改变外部状态. 函数式编程可解决线程安全问题,每一个函数都是线程安全的. 时间状态:变量一 ...

  8. P1426

    和上次的小鱼题差不多,但多了一些条件. 先把游到 $ s - x $ 米是第 $ a_i $ 秒求出来,然后判断之后在第 $ a_{i + 1} $ 秒内游的距离是否 $ \geq 2x $ ,大于就 ...

  9. django.db.utils.OperationalError: (2003, "Can't connect to MySQL server on ‘127.0.0.1’)

    报错信息如下: 检查发现原来是自己的sql没有启动 启动mysql后,

  10. 07-Docker-Image深入理解

    目录 07-Docker-Image深入理解 参考 镜像简介 什么是Docker镜像 什么是Docker容器 镜像结构 镜像特性 镜像层 容器层 镜像存储 07-Docker-Image深入理解 Do ...