Swagger学习

4 篇文章 0 订阅
2 篇文章 0 订阅


在这里插入图片描述

一、前言

Swagger 是一个用于生成、描述和调用 RESTful 接口的 Web 服务。通俗的来讲,Swagger 就是将项目中所有(想要暴露的)接口展现在页面上,并且可以进行接口调用和测试的服务。

Swagger官网:https://swagger.io/

二、Swagger常用注解

2.1 @Api

作用:放在请求的类上,说明类的作用;
示例

@RestController
@Api(tags = "员工管理模块")
public class EmployeeController {

2.2 @ApiOperation

作用:用在请求的方法上,说明方法的作用;
示例

    @DeleteMapping(value = "deleteById")
    @ApiOperation(value = "根据id删除数据", notes = "删除用户")
    public String delete(Integer id){
        return "删除成功";
    }

2.3 @ApiImplicitParams、@ApiImplicitParam

作用:方法参数说明;
示例

    @PostMapping(value = "/save")
    //说明是什么方法(可以理解为方法注释)
    @ApiOperation(value = "添加用户", notes = "添加用户")

    @ApiImplicitParams({
            @ApiImplicitParam(name = "user",value = "添加用户数据")
    }
    )
    public String saveUser(Employee user){
        return "保存成功";
    }

或者:

    @GetMapping(value = "findById")
    @ApiOperation(value = "根据id获取用户信息", notes = "根据id查询用户信息")
    @ApiImplicitParam(name = "id", value = "用户id")
    public Employee getUser(Integer id){
        return null;
    }

2.4 @ApiResponses、@ApiResponse

作用:方法返回值的状态码说明
示例

    @PostMapping(value = "/save")
    //说明是什么方法(可以理解为方法注释)
    @ApiOperation(value = "添加用户", notes = "添加用户")

    @ApiImplicitParams({
            @ApiImplicitParam(name = "user",value = "添加用户数据")
    }
    )
    @ApiResponses({
            @ApiResponse(code = 200, message = "添加用户成功"),
            @ApiResponse(code = 400, message = "请求参数没填好"),
            @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")
    })
    public String saveUser(Employee user){
        return "保存成功";
    }

2.5 @ApiModel

作用:用于JavaBean上面,用于描述JavaBean 的功能;
示例

@ApiModel(description = "员工信息")
public class Employee {

2.6 @ApiModelProperty

作用:用在JavaBean类的属性上面,说明属性的含义;
示例

    @ApiModelProperty(value = "员工id",required=true)
    private String id;

    @ApiModelProperty(value = "员工姓名",required=true)
    private String name;

三、SpringBoot整合Swagger

3.1 引入依赖

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>

3.2 配置类

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                //是否开启 (true 开启  false隐藏。生产环境建议隐藏)
                //.enable(false)
                .select()
                //扫描的路径包,设置basePackage会将包下的所有被@Api标记类的所有方法作为api
                .apis(RequestHandlerSelectors.basePackage("com.panda"))
                //指定路径处理PathSelectors.any()代表所有的路径
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                //设置文档标题(API名称)
                .title("SpringBoot集成Swagger2学习")
                //文档描述
                .description("接口说明")
                //服务条款URL
                .termsOfServiceUrl("http://localhost:8080/")
                //版本号
                .version("1.0.0")
                .build();
    }
}

3.3 使用注解标注接口信息

@RestController
@Api(tags = "员工管理模块")
public class EmployeeController {

    @PostMapping(value = "/save")
    //说明是什么方法(可以理解为方法注释)
    @ApiOperation(value = "添加用户", notes = "添加用户")

    @ApiImplicitParams({
            @ApiImplicitParam(name = "user",value = "添加用户数据")
    }
    )
    @ApiResponses({
            @ApiResponse(code = 200, message = "添加用户成功"),
            @ApiResponse(code = 400, message = "请求参数没填好"),
            @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")
    })
    public String saveUser(Employee user){
        return "保存成功";
    }

    @GetMapping(value = "findById")
    @ApiOperation(value = "根据id获取用户信息", notes = "根据id查询用户信息")
    @ApiImplicitParam(name = "id", value = "用户id")
    public Employee getUser(Integer id){
        return null;
    }

    @DeleteMapping(value = "deleteById")
    @ApiOperation(value = "根据id删除数据", notes = "删除用户")
    public String delete(Integer id){
        return "删除成功";
    }
}
@ApiModel(description = "员工信息")
public class Employee {

    @ApiModelProperty(value = "员工id",required=true)
    private String id;

    @ApiModelProperty(value = "员工姓名",required=true)
    private String name;

3.4 查看接口文档

启动项目,访问http://localhost:8080/swagger-ui.html#/查看接口文档。
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pandamig

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值