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

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. speedtest测速

    wget https://raw.github.com/sivel/speedtest-cli/master/speedtest.py chmod a+rx speedtest.py mv speed ...

  2. 在springboot使用jsp

    在springboot配置jsp环境 在pom.xml中添加配置依赖 内容如下: <dependency> <groupId>org.springframework.boot& ...

  3. NextCloud 17.0.1 升级到NextCloud 23.0.0

    NextCloud 版本过低使用时间过长,想升级一下. 问题记录及参考文档 本次采用离线升级(在线不能下载) 官网下载https://nextcloud.com/install/#  23.0.0最新 ...

  4. Java笔记_方法重载

    /** * @ClassName OverLoadExercise * @Description TODO * @Author Orange * @Date 2021/4/19 8:29 * @Ver ...

  5. WebSocket 基本使用

    1. 引入 WebSocket 包 2. 2.最后测试 WebSocket 谷歌浏览器 F12 ,在 Console 控制台 输入以下测试链接,然后回车测试. ws = new WebSocket() ...

  6. php 常用助手函数

    1 <?php 2 3 if (!function_exists('bcSum')) { 4 function bcSum($scale, ...$args): string 5 { 6 $re ...

  7. Xcode 12.x下载了iOS10.x模拟器无法创建对应Device问题修复

    转自: https://hiraku.tw/2021/04/6428/ 感谢原作者,如有侵权请评论联系删除文章 在升級到 Xcode 12 之後,有些人發現雖然 Xcode 允許安裝低版本的模擬器,但 ...

  8. File.createTempFile()

    File.createTempFile()的两个参数,是前缀和后缀,临时文件的文件名,会在前缀和后缀中各截取一部分,再拼接上随机数进行生成: 推荐手动指定目录,尽量指定到项目路径下,默认的磁盘位置,有 ...

  9. windows server的应用软件限流QoS

    原因: 生产环境中程序员写的redis调用方法有逻辑问题, 导致流量高达800~900Mbps导致服务器其它网络服务有丢包现象, 他又有别的项目紧急需要修改,只能通过系统自带的QoS临时限流控制. 1 ...

  10. One-Shot Transfer Learning of Physics-Informed Neural Networks

    本文提出了一种将迁移学习应用到PINN的方法.可以极大的缩短训练PINN所用的时间,目前,PINN所需要的训练次数往往都在成千上万次, 作者通过批量训练PINN,来学习丰富的潜在空间用来执行迁移学习. ...