第一步:我们新建一个SpringBoot项目;
加一个Spring Web依赖
加下Swagger依赖:
<dependency>
<groupId>io.springfoxgroupId>
<artifactId>springfox-boot-starterartifactId>
<version>3.0.0version>
dependency>
这里用的是 springfox,Swagger 可以看作是一个遵循了 OpenAPI 规范的一项技术,而 springfox 则是这项技术的具体实现。
类似 JDBC是一套技术规范,各大数据库都有JDBC的实现;
最终项目pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0modelVersion>
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>2.5.4version>
<relativePath/>
parent>
<groupId>com.java1234groupId>
<artifactId>swagger-test2artifactId>
<version>0.0.1-SNAPSHOTversion>
<name>swagger-test2name>
<description>Demo project for Spring Bootdescription>
<properties>
<java.version>1.8java.version>
properties>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
<dependency>
<groupId>io.springfoxgroupId>
<artifactId>springfox-boot-starterartifactId>
<version>3.0.0version>
dependency>
dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
plugin>
plugins>
build>
project>
第二步:开启Swagger
在 Spring Boot 的启动类添加 @EnableOpenApi
注解,开启 Swagger支持;
package com.java1234;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springfox.documentation.oas.annotations.EnableOpenApi;
@EnableOpenApi
@SpringBootApplication
public class SwaggerTestApplication {
public static void main(String[] args) {
SpringApplication.run(SwaggerTestApplication.class, args);
}
}
第三步:新建HelloWorldController.java控制器类
package com.java1234.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author java1234_小锋
* @site www.java1234.com
* @company 南通小锋网络科技有限公司
* @create 2021-09-22 15:46
*/
@RestController
public class HelloWorldController {
@RequestMapping("/helloWorld")
public String helloWorld(){
return "helloWorld";
}
}
启动项目,浏览器输入:http://localhost:8080/helloWorld
没问题;
第四步:访问swagger-ui,查看接口文档
浏览器访问:http://localhost:8080/swagger-ui/
显示如下图:主要三大区域,分组定义信息区块,API文档上信息区块以及最重要的接口定义信息区块;
展开HelloWorldController接口定义:
这里我们能看到枚举了所有可能的请求类型,因为我们用了@RequestMapping
,以及请求地址/helloWorld
,我们再点开任意一个请求,
我们可以看到,接口没有参数,返回值是String
类型;
这里描述了完整的接口定义信息;前端开发人员一目了然,假如接口定义变化,前端开发人员刷新下swagger-ui就能及时看到,比起以往的人工编写接口文档方便很多;
第五步:Swagger注解描述接口
在接口描述的时候,控制器类,以及方法,参数,返回值等,默认的话,是英文无备注信息,可能会让前端开发人员看起来吃力,会增加沟通成本;
Swagger提供一套注解,我们给接口添加中文注释;
我们在类上添加@API
注解,以及在方法上添加@ApiOperation
注解
package com.java1234.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author java1234_小锋
* @site www.java1234.com
* @company 南通小锋网络科技有限公司
* @create 2021-09-22 15:46
*/
@Api(tags="helloWorld类测试")
@RestController
public class HelloWorldController {
@ApiOperation("测试方法")
@RequestMapping("/helloWorld")
public String helloWorld(){
return "helloWorld";
}
}
重启项目,刷新swagger-ui,发现已经以后中文注释了;
说明:这个是锋哥的Swagger3备课笔记,等备课完,会发布配套的视频教程,如有需要,可以先加锋哥WX:java1239 欢迎白嫖