------------恢复内容开始------------

1.创建SpringBoot项目

2.选择快捷方式创建springboot项目

3.工程文件树形图

4.pom.xml中导入Swagger依赖

代码如下:

 1        <dependency>
2 <groupId>io.springfox</groupId>
3 <artifactId>springfox-swagger2</artifactId>
4 <version>2.9.2</version>
5 </dependency>
6 <dependency>
7 <groupId>io.springfox</groupId>
8 <artifactId>springfox-swagger-ui</artifactId>
9 <version>2.9.2</version>
10 </dependency>

5.配置Swagger信息

代码如下:

 1 package com.example.dell;
2
3 import org.springframework.context.annotation.Bean;
4 import org.springframework.context.annotation.Configuration;
5 import springfox.documentation.builders.ApiInfoBuilder;
6 import springfox.documentation.builders.PathSelectors;
7 import springfox.documentation.builders.RequestHandlerSelectors;
8 import springfox.documentation.service.Contact;
9 import springfox.documentation.spi.DocumentationType;
10 import springfox.documentation.spring.web.plugins.Docket;
11 import springfox.documentation.swagger2.annotations.EnableSwagger2;
12
13 /**
14 * @program:swagger2-demo
15 * @description:swagger配置类
16 * @author:feixiang
17 * @create:2020/5/14
18 */
19
20 @Configuration
21 @EnableSwagger2
22 public class Swagger2Config {
23 @Bean
24 public Docket createRestApi() {
25 return new Docket(DocumentationType.SWAGGER_2)
26 .pathMapping("/")
27 .select()
28 .apis(RequestHandlerSelectors.basePackage("com.example.dell.web"))
29 .paths(PathSelectors.any())
30 .build().apiInfo(new ApiInfoBuilder()
31 .title("飞翔用接口自动化平台")
32 .description("飞翔独享")
33 .version("9.0")
34 .contact(new Contact("马化腾","blog.csdn.net","aaa@gmail.com"))
35 .license("The Apache License")
36 .licenseUrl("http://www.baidu.com")
37 .build());
38 }
39 }

创建接口

接下来就是创建接口了,Swagger2相关的注解其实并不多,而且很容易懂,下面我来分别向小伙伴们举例说明

代码如下

 1 package com.example.dell.web;
2
3 import com.example.dell.pojo.User;
4 import io.swagger.annotations.ApiImplicitParam;
5 import io.swagger.annotations.ApiImplicitParams;
6 import io.swagger.annotations.ApiOperation;
7 import org.springframework.web.bind.annotation.*;
8 import io.swagger.annotations.Api;
9 import org.springframework.web.bind.annotation.PathVariable;
10 import org.springframework.web.bind.annotation.RequestBody;
11 import org.springframework.web.bind.annotation.RequestMapping;
12 import org.springframework.web.bind.annotation.RestController;
13
14
15
16 @RestController
17 @Api(tags = "用户管理相关接口")
18 @RequestMapping("/user")
19 public class UserController{
20 @PostMapping("/")
21 @ApiOperation("添加用户的接口")
22 @ApiImplicitParams({
23 @ApiImplicitParam(name = "username", value = "用户名", defaultValue = "张三"),
24 @ApiImplicitParam(name = "address", value = "用户地址", defaultValue = "佛山", required = true)
25 }
26 )
27 public RespBean addUser(String username, @RequestParam(required = true) String address) {
28 return new RespBean();
29 }
30
31 @GetMapping("/")
32 @ApiOperation("根据id查询用户的接口")
33 @ApiImplicitParam(name = "id", value = "用户id", defaultValue = "99", required = true)
34 public User getUserById(@PathVariable Integer id) {
35 User user = new User();
36 user.setId(id);
37 return user;
38 }
39 @PutMapping("/{id}")
40 @ApiOperation("根据id更新用户的接口")
41 public User updateUserById(@RequestBody User user) {
42 return user;
43 }
44 }

这里边涉及到多个API,我来向小伙伴们分别说明:

@Api注解可以用来标记当前Controller的功能。
@ApiOperation注解用来标记一个方法的作用。
@ApiImplicitParam注解用来描述一个参数,可以配置参数的中文含义,也可以给参数设置默认值,这样在接口测试的时候可以避免手动输入。
如果有多个参数,则需要使用多个@ApiImplicitParam注解来描述,多个@ApiImplicitParam注解需要放在一个@ApiImplicitParams注解中。
需要注意的是,@ApiImplicitParam注解中虽然可以指定参数是必填的,但是却不能代替@RequestParam(required = true),前者的必填只是在Swagger2框架内必填,抛弃了Swagger2,这个限制就没用了,所以假如开发者需要指定一个参数必填,@RequestParam(required = true)注解还是不能省略。
如果参数是一个对象(例如上文的更新接口),对于参数的描述也可以放在实体类中。例如下面一段代码:

 1 package com.example.dell.pojo;
2
3 import io.swagger.annotations.ApiModelProperty;
4
5
6
7
8 public class User {
9 @ApiModelProperty(value = "用户id")
10 private Integer id;
11 @ApiModelProperty(value = "用户名")
12 private String username;
13 @ApiModelProperty(value = "用户地址")
14 private String address;
15 //getter/setter
16
17 public Integer getId() {
18 return id;
19 }
20
21 public void setId(Integer id) {
22 this.id = id;
23 }
24
25 public String getUsername() {
26 return username;
27 }
28
29 public void setUsername(String username) {
30 this.username = username;
31 }
32
33 public String getAddress() {
34 return address;
35 }
36
37 public void setAddress(String address) {
38 this.address = address;
39 }
40 }

代码如下:

 1 package com.example.dell.web;
2
3 import io.swagger.annotations.ApiModelProperty;
4
5 public class RespBean {
6 @ApiModelProperty(value = "用户id")
7 private Integer id;
8 @ApiModelProperty(value = "用户名")
9 private String username;
10 @ApiModelProperty(value = "用户地址")
11 private String address;
12 //getter/setter
13
14 public Integer getId() {
15 return id;
16 }
17
18 public void setId(Integer id) {
19 this.id = id;
20 }
21
22 public String getUsername() {
23 return username;
24 }
25
26 public void setUsername(String username) {
27 this.username = username;
28 }
29
30 public String getAddress() {
31 return address;
32 }
33
34 public void setAddress(String address) {
35 this.address = address;
36 }
37 }

然后启动,运行

此时启动项目,输入http://localhost:8080/swagger-ui.html,能够看到如下页面,说明已经配置成功了:

IDEA+SpringBoot整合Swagger2创建API文档的更多相关文章

  1. Spring Boot 整合Swagger2构建API文档

    1.pom.xml中引入依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>spri ...

  2. SpringBoot使用Swagger2构建API文档

    后端开发中经常需要对移动客户端提供RESTful API接口,在后期版本快速迭代的过程中,修改接口实现的时候都必须同步修改接口文档,而文档与代码又处于两个不同的媒介,除非有严格的管理机制,不然很容易导 ...

  3. SpringBoot整合Swagger2搭建API在线文档

    Swagger,中文"拽"的意思,它是一个功能强大的在线API在线文档,目前它的版本为2.x,所以称为Swagger2.Swagger2提供了在线文档的查阅和测试功能.利用Swag ...

  4. SpringBoot+rest接口+swagger2生成API文档+validator+mybatis+aop+国际化

    代码地址:JillWen_SpringBootDemo mybatis 1. 添加依赖: <dependency> <groupId>org.mybatis.spring.bo ...

  5. springboot学习-jdbc操作数据库--yml注意事项--controller接受参数以及参数校验--异常统一管理以及aop的使用---整合mybatis---swagger2构建api文档---jpa访问数据库及page进行分页---整合redis---定时任务

    springboot学习-jdbc操作数据库--yml注意事项--controller接受参数以及参数校验-- 异常统一管理以及aop的使用---整合mybatis---swagger2构建api文档 ...

  6. Spring Boot中使用Swagger2构建API文档

    程序员都很希望别人能写技术文档,自己却很不愿意写文档.因为接口数量繁多,并且充满业务细节,写文档需要花大量的时间去处理格式排版,代码修改后还需要同步修改文档,经常因为项目时间紧等原因导致文档滞后于代码 ...

  7. 白话SpringCloud | 第十一章:路由网关(Zuul):利用swagger2聚合API文档

    前言 通过之前的两篇文章,可以简单的搭建一个路由网关了.而我们知道,现在都奉行前后端分离开发,前后端开发的沟通成本就增加了,所以一般上我们都是通过swagger进行api文档生成的.现在由于使用了统一 ...

  8. 使用springfox+swagger2书写API文档(十八)

    使用springfox+swagger2书写API文档 springfox是通过注解的形式自动生成API文档,利用它,可以很方便的书写restful API,swagger主要用于展示springfo ...

  9. springboot利用swagger构建api文档

    前言 Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件.本文简单介绍了在项目中集成swagger的方法和一些常见问题.如果想深入分析项目源码,了解更多内容,见参考资料. S ...

  10. SpringBoot中使用springfox+swagger2书写API文档

    随着前后端的分离,借口文档变的尤其重要,springfox是通过注解的形式自动生成API文档,利用它,可以很方便的书写restful API,swagger主要用于展示springfox生成的API文 ...

随机推荐

  1. 苹果ios APP怎么打包?推荐这个网站

    众所周知,苹果的应用开发需要基于苹果电脑环境,而我们很多开发者并不具备这样的条件.如果你买一台贵的苹果电脑只是为了发布一个应用,成本太高了! 就算你有苹果电脑,你也可以自己开发一个基于web的IOS应 ...

  2. Python的入门学习Day 28~30——form”夜曲编程“

    Day 28 in Day 29 time: 2021.8.26. ​ 时间模糊了界限,虽我日渐走远.转眼而过的二十多天,既留下了夏天在沙滩上的足迹,同时也为黄金色的秋日铺上留白的画卷.键盘敲时,熟悉 ...

  3. automagic webUI 自动化

    https://www.cnblogs.com/tsbc/p/6244268.html

  4. 小白之Python-基础中的基础05

    Python-基础中的基础05 --之元组 #元组:不可变更1. 创建元组:元组必须用,表示,只加()是不行的 print 42 print (42) print 43, #这个地方会把下一行的内容打 ...

  5. ctfshow web入门 命令执行 37-39

    37-39 基于 GET 传参的 include() 38.39 是 37 的变种 分析 伪协议常用于文件包含漏洞中 文件包含函数有:include.include_once.require.requ ...

  6. insert_base_x.txt

    insert into g_temp.test_basevalues('20220202'::date, 1, 'apple'),('20220203'::date, 5, 'banana'),('2 ...

  7. OSPF配置常用命令知识总结

    OSPF配置常用命令知识总结 1.display ospf abr-asbr 命令用来显示OSPF的区域边界路由器和自治系统边界路由器信息. [R3]dis ospf abr-asbr OSPF Pr ...

  8. Devexpress WPF ChartControl 多Y轴

    <Window x:Class="DXApplication4.MainWindow" xmlns="http://schemas.microsoft.com/wi ...

  9. .Net Core WebApi + Vue前后端分离项目中的jwt令牌应用

    1.Start up 里面配置JWT认证方案 //认证方案 services.AddAuthentication(option => { option.DefaultAuthenticateSc ...

  10. 吴恩达老师机器学习课程chapter02——分类

    吴恩达老师机器学习课程chapter02--分类 本文是非计算机专业新手的自学笔记,高手勿喷,欢迎指正与其他任何合理交流. 本文仅作速查备忘之用,对应吴恩达(AndrewNg)老师的机器学期课程第六章 ...