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. 使用python同时替换json多个指定key的value

    1.如何同时替换json多个指定key的value import json from jsonpath_ng import parse def join_paths(regx_path,new_val ...

  2. git密码相关问题

    一.解决:每次都需要输入账号密码 git config --global credential.helper store 二.后期git密码更改后,重置密码操作 git config --system ...

  3. spring feign依赖包

    1.feign依赖包 <properties> <java.version>1.8</java.version> <spring-cloud.version& ...

  4. Bugku-CTF加密篇之 托马斯.杰斐逊

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAdYAAAKLCAYAAABL4qnuAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjw ...

  5. php 用mysqli的json_encode()转换出来 全是对象的问题

    <?php /** * Created by PhpStorm. * User: Administrator * Date: 2018/9/6 0006 * Time: 15:33 */ //查 ...

  6. http的长连接和短连接(史上最通俗!)

    1.以前的误解 很久之前就听说过长连接的说法,而且还知道HTTP1.0协议不支持长连接,从HTTP1.1协议以后,连接默认都是长连接.但终究觉得对于长连接一直懵懵懂懂的,有种抓不到关键点的感觉. 今天 ...

  7. notepad++,vim驼峰命名与下划线的互相转换

    notepad++,vim驼峰命名与下划线的互相转换   IDDAY_TIMEDAY_FULL_NAMEDAY_OF_WEEKYEAR_MONTHYREA_NAME 下滑线转驼峰 大写转小写 有这么些 ...

  8. python匿名函数与三元运算

      匿名函数 匿名函数就是不需要显示式的指定函数名 首先看一行代码: def calc(x,y): return x*y print(calc(2,3)) # 换成匿名函数 calc = lambda ...

  9. 【笔记2-环境配置及初始化】从0开始 独立完成企业级Java电商网站开发(服务端)

    准备工作 Linux系统安装 云服务器部署 概要 申请和配置 域名的购买.解析.配置.绑定流程 用户创建实操 环境安装及部署 JDK.Tomcat.Maven下载安装及配置 vsftpd下载安装及配置 ...

  10. jmh 微基准测试

    选择依据:对某段代码的性能测试. 1.运行方法 mvn clean install java -jar target/benchmarks.jar JMHSample_02 -f 1 2.maven ...