springboot笔记08——整合swagger2
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! 就可以测试功能!

springboot笔记08——整合swagger2的更多相关文章
- springboot笔记07——整合MyBatis
前言 Springboot 整合 MyBatis 有两种方式,分别是:"全注解版" 和 "注解.xml混合版". 创建项目 创建Springboot项目,选择依 ...
- springboot笔记10——整合Redis
依赖 <dependencies> <!--web依赖--> <dependency> <groupId>org.springframework.boo ...
- Spring Boot 学习笔记(六) 整合 RESTful 参数传递
Spring Boot 学习笔记 源码地址 Spring Boot 学习笔记(一) hello world Spring Boot 学习笔记(二) 整合 log4j2 Spring Boot 学习笔记 ...
- SpringBoot整合Swagger2,再也不用维护接口文档了!
前后端分离后,维护接口文档基本上是必不可少的工作.一个理想的状态是设计好后,接口文档发给前端和后端,大伙按照既定的规则各自开发,开发好了对接上了就可以上线了.当然这是一种非常理想的状态,实际开发中却很 ...
- springBoot(12)---整合Swagger2
Spingboot整合Swagger2 随着互联网技术的发展,一般开发都是前后端分离,那么前端和后端的唯一联系,变成了API接口:API文档变成了前后端开发人员联系的纽带,变得越来越重要,没有API ...
- SpringBoot整合系列-整合Swagger2
原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9959844.html SpringBoot整合Swagger2 步骤 第一步:添加必要的 ...
- SpringBoot(七):SpringBoot整合Swagger2
原文地址:https://blog.csdn.net/saytime/article/details/74937664 手写Api文档的几个痛点: 文档需要更新的时候,需要再次发送一份给前端,也就是文 ...
- SpringBoot整合Swagger2
相信各位在公司写API文档数量应该不少,当然如果你还处在自己一个人开发前后台的年代,当我没说,如今为了前后台更好的对接,还是为了以后交接方便,都有要求写API文档. 手写Api文档的几个痛点: 文档需 ...
- springboot+cloud 学习(四)Zuul整合Swagger2
前言 在微服务架构下,服务是分散的,怎么把所有服务接口整合到一起是我们需要关注的. 下面举例用zuul作为分布式系统的网关,同时使用swagger生成文档,想把整个系统的文档整合在同一个页面上来说明. ...
随机推荐
- OpenFOAM——同心环中的自然对流
本算例来自<ANSYS Fluid Dynamics Verification Manual>中的VMFL009: Natural Convection in a Concentric A ...
- 团队作业-Beta冲刺(1/4)
队名:软工9组 组长博客:https://www.cnblogs.com/cmlei/ 作业博客:https://edu.cnblogs.com/campus/fzu/SoftwareEngineer ...
- Unity内存优化之视频讲解
视频为中文讲解,mp4格式,大小3.05GB 目录 扫码时备注或说明中留下邮箱 付款后如未回复请至https://shop135452397.taobao.com/ 联系店主
- java中JSON转含泛型对象
public static void main(String[] args) { UserDto userDto=new UserDto("test","14" ...
- EOS 数据库RAM使用量的计算
如果你是EOS的合约开发者,相信你很有可能跟我一样对内存(RAM)的使用量感到不解.在使用multi_index进行数据存储时,明明只存了一点数据,但区块链浏览器中显示的内存占用量却上升了不少.在这篇 ...
- 品优购商城项目(五)消息中间件 ActiveMQ
消息中间件用于降低各个项目模块的耦合,适用于不需要等待返回消息才能进入下一个业务环节的模块,以及实时要求性不高的业务模块. 一.JMS JMS(Java Messaging Service)是Java ...
- [译]如何在红帽系统(RHEL)上源码安装python3?
原文来源: https://stackoverflow.com/questions/8087184/installing-python-3-on-rhel 很容易手动安装. 1.下载对应的python ...
- net ads join 和net rpc join命令的区别
要将主机加入Active Directory(AD),请输入: #net ads加入-U administrator 输入管理员密码:Passw0rd 使用短域名 - SAMDOM 加入'M1'到dn ...
- [LeetCode] 100. Same Tree 相同树
Given two binary trees, write a function to check if they are the same or not. Two binary trees are ...
- 第6/7Beta冲刺
1.团队成员 成员姓名 成员学号 秦裕航 201731062432(组长) 刘东 201731062227 张旭 201731062129 王伟 201731062214 2.SCRU部分 2.1各成 ...