首先新建一个SpringBoot项目,这步就直接跳过了。
引入swagger2依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
配置swagger
package com.tcp.swagger.conifg;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* @Author tcp
* @DATE 2021/3/17 14:47
**/
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.pathMapping("/")
.select()
.apis(RequestHandlerSelectors.basePackage("com.tcp.swagger"))
.paths(PathSelectors.any())
.build()
.apiInfo(apiInfo());
}
private ApiInfo apiInfo(){
return new ApiInfoBuilder()
//页面标题
.title("swagger测试")
//描述
.description("接口文档")
//创建人
.contact(new Contact("tcp", "www.tcp.com", "tcp@163.com"))
//版本号
.version("1.0")
.build();
}
}
新建一个用户接口 UserController
package com.tcp.swagger.controller;
import com.tcp.swagger.bean.User;
import io.swagger.annotations.*;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
/**
* @Author tcp
* @DATE 2021/3/17 14:38
**/
@Controller
@Api(tags = "用户测试")
public class UserController {
@GetMapping("/getUser")
@ApiOperation("获取用户信息")
@ResponseBody
@ApiImplicitParams(
{@ApiImplicitParam(value = "用户名称",name = "name",required = true),
@ApiImplicitParam(value = "用户密码",name = "password",required = true)}
)
public User getUserById(@RequestParam String name,
@RequestParam String password){
User user = new User();
user.setName(name);
user.setPassword(password);
return user;
}
}
User实体类
package com.tcp.swagger.bean;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @Author tcp
* @DATE 2021/3/17 14:52
**/
@Data
@ApiModel(description = "用户实体类")
public class User implements Serializable {
private static final Long serializableLong = 1L;
@ApiModelProperty(value = "用户Id")
private Integer id;
@ApiModelProperty(value = "用户姓名")
private String name;
@ApiModelProperty(value = "用户密码")
private String password;
}
注意代码结构
需要和启动类在同一个目录下
启动项目
通过 http://localhost:8080/swagger-ui.html 查看文档
可以看到我们定义的接口和实体描述。
Swagger2页面测试
点击接口进行测试
点击 Try it out输入参数进行测试。
点击Execute执行
后台debug可以看到接收到了传入的参数
Response能看到后台返回的数据