Swagger是什么?

Swagger是一个RESTFUL 接口的文档在线自动生成和功能测试的框架。利用swagger2的注解可以快速的在项目中构建Api接口文档,并且提供了测试API的功能。

Springboot 整合Swagger2

创建Springboot项目,添加相关依赖

<dependencies>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

项目结构

Swagger2配置类

@Configuration
@EnableSwagger2
public class Swagger2Configration { /*
* 创建api文档
* */
@Bean
public Docket createRestApi(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select() .apis(RequestHandlerSelectors.basePackage("com.jotal.springboot06swagger2.Controller")) //为该包下的类API文档
.apis(RequestHandlerSelectors.withClassAnnotation(Api.class))//为有@Api注解的类生成API文档
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) //为有@ApiOperation注解的方法生成API文档
.paths(PathSelectors.any())
.build();
} /*
* api文档展示信息
* */
private ApiInfo apiInfo(){
return new ApiInfoBuilder()
.title("Jotal项目接口文档")
.description("测试api文档")
.contact(new Contact("jotal","jotalngu.github.io",null))
.version("0.1")
.build();
} }

@Configuration 标注该类为配置类

@EnableSwagger2 启用Swagger2

@Bean 将Docket的实例对象注入Spring ioc容器中

apis 为选择生成Api文档的范围,有三种方式:

  • 生成指定包下面的类的API文档
  • 生成有指定注解的类的API文档
  • 生成有指定注解的方法的API文档

paths(PathSelectors.any()) 表示路径选择器匹配所有路径

实体类

package com.jotal.springboot06swagger2.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; @ApiModel(value = "用户信息")
public class User { @ApiModelProperty(value ="年龄",name = "age")
private int age;
private String name; //getter、setter、toString和构造器
}

控制类

package com.jotal.springboot06swagger2.Controller;

import com.jotal.springboot06swagger2.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList;
import java.util.List; @RestController
@RequestMapping("/testApi")
@Api(tags = "用户信息接口")
public class UserController { @GetMapping("/getAllUser")
@ApiOperation(value="查询所有", notes="查询所有用户信息")
public List<User> getAllUser(){
List<User> userList = new ArrayList<>();
for(int i=0;i<4;i++){
User user = new User();
user.setAge(i);
userList.add(user);
}
return userList;
}
}

测试

http://localhost:8080/swagger-ui.html

点击Try it out! 就可以测试功能!

最新文章

  1. 【python】调用机器喇叭发出蜂鸣声(Beep)
  2. C++ 用于大型程序的工具
  3. 如何提高码农产量,基于ASP.NET MVC的敏捷开发框架开发随笔一
  4. centos修改文件及文件夹权限
  5. Activity的活动周期
  6. dfs.datanode.max.xcievers参数导致hbase集群报错
  7. centos 安装ecshop出现date错误
  8. RPM是RedHat Package Manager(RedHat软件包管理工具)
  9. 原生js判断某个元素是否有指定的class名的几种方法
  10. Eclipse设置的断点失效的解决办法
  11. ASIHTTPRequest异步请求
  12. 简易的AJAX工具[转]
  13. Spring邮件发送2
  14. 利用 /proc/sys/kernel/core_pattern隐藏系统后门
  15. python之__new__()
  16. linux服务器上简单命令
  17. vue打包后404,webpack配置问题
  18. RESTful Web Service 架构
  19. C# 设计模式-策略者模式(Strategy)
  20. sublime text3:快捷键

热门文章

  1. 【python】学习笔记之遇到的坑print输出报错
  2. Shell脚本实现对文件编辑
  3. chown与chmod的区别
  4. 解决PHP7无法监听9000端口问题/502错误解决办法
  5. 数据分析之--log文件自动化分析
  6. Java线程的wait(), notify()和notifyAll()
  7. Android 多用户
  8. 服务器推送(Server push)技术总结
  9. Python - Django - SweetAlert 插件的使用
  10. eclipse :代码自动补全不生效解决办法