• Swagger2使用


    一:Swagger2 的 maven 依赖

       <!-- 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>

    二:Swagger2 的配置

    使用 Swagger2 需要进行配置,Spring Boot 中对 Swagger2 的配置非常方便,新建一个配置类,
    Swagger2 的配置类上除了添加必要的 @Configuration 注解外,还需要添加 @EnableSwagger2 注解。
    package com.example.config;

    import com.example.entity.Area;
    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;

    /**
    * @description:
    * @author: tlj
    * @time: 2021/8/25 15:39
    */
    @Configuration
    @EnableSwagger2
    public class SwaggerConfig {
    @Bean
    public Docket createRestApi(){
    return new Docket(DocumentationType.SWAGGER_2)
    // 指定构建api文档的详细信息的方法:apiInfo()
    .apiInfo(apiInfo())
    .select()
    // 指定要生成api接口的包路径,这里把controller作为包路径,生成controller 中的所有接口
    .apis(RequestHandlerSelectors.basePackage("com.example.controller"))
    .paths(PathSelectors.any())
    .build();
    }

    /**
    * 构建api文档的详细信息
    *
    */
    private ApiInfo apiInfo() {
    Area area;
    return new ApiInfoBuilder()
    // 设置页面标题
    .title("拖拉机的接口")
    // 设置接口描述
    .description("学习用")
    // 设置联系方式
    .contact(new Contact("地址","https://www.cnblogs.com/dragon-lan/","xxx@qq.com"))
    // 设置版本
    .version("1.0")
    // 构建
    .build();
    }

    }
    上面已经配置好了 Swagger2 了。现在可以测试一下配置有没有生效,启动项目,在浏览器中输入localhost:8080/swagger-ui.html ,即可看到 swagger2 的接口页面,如下图所示,说明Swagger2集成成功(注:端口号是自己项目中application.yml中配置的项目的端口号)
     
    结合该图,对照上面的 Swagger2 配置文件中的配置,可以很明确的知道配置类中每个方法的作用。这样就很容易理解和掌握 Swagger2 中的配置了,也可以看出,其实 Swagger2 配置很简单。

    三:Swagger2 的使用

    1、实体类注解

    package com.example.entity;
    
    import io.swagger.annotations.ApiModel;
    import io.swagger.annotations.ApiModelProperty;
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    /**
     * @description:
     * @author: tlj
     * @time: 2021/8/25 15:53
     */
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    @ApiModel(value = "用户实体类")
    public class User {
        @ApiModelProperty(value = "用户唯一标识")
        private Long id;
    
        @ApiModelProperty(value = "用户名")
        private  String username;
    
        @ApiModelProperty(value = "用户密码")
        private String password;
    }
     
    解释下 @ApiModel 和 @ApiModelProperty 注解:
    @ApiModel 注解用于实体类,表示对类进行说明,用于参数用实体类接收。
    @ApiModelProperty 注解用于类中属性,表示对 model 属性的说明或者数据操作更改。
     
    2、Controller 类中相关注解
     
    package com.example.controller;
    
    import com.example.common.ApiResult;
    import com.example.common.ResposeResult;
    import com.example.entity.User;
    import io.swagger.annotations.Api;
    import io.swagger.annotations.ApiOperation;
    import io.swagger.annotations.ApiParam;
    import org.springframework.web.bind.annotation.*;
    
    
    /**
     * @description:
     * @author: tlj
     * @time: 2021/8/25 15:57
     */
    @RestController
    @RequestMapping("/swagger")
    @Api(value = "Swagger2 在线接口文档")
    public class SwaggerController {
    
        @GetMapping("/get/{id}")
        @ApiOperation(value = "根据用户标识获取用户信息")
        public ResposeResult getUserInfo(@PathVariable @ApiParam(value = "用户唯一标识") Long id) {
            User user = new User(id, "铁路局", "123456");
            return new ResposeResult(user);
        }
    
        @PostMapping("/insert")
        @ApiOperation(value = "添加用户信息")
        public ResposeResult insert(@RequestBody @ApiParam(value = "用户信息") User user) {
            return new ResposeResult();
        }
    }
     
    我们来学习一下 @Api 、 @ApiOperation 和 @ApiParam 注解。
    @Api 注解用于类上,表示标识这个类是 swagger 的资源。
    @ApiOperation 注解用于方法,表示一个 http 请求的操作。
    @ApiParam 注解用于参数上,用来标明参数信息。
    以上是 Swagger 中最常用的5 个注解,接下来运行一下项目工程,在浏览器中输入 localhost:8080/swagger-ui.html 看一下Swagger 页面的接口状态。
     

     可以看到页面非常详细的显示了类的各个信息

    四:完结撒花。。。

     
  • 相关阅读:
    数据结构相关知识
    设计模式
    常用排序算法
    算法之---堆的简单介绍
    树和二叉树简介
    列表查找以及二分查找
    算法基础
    Python之函数(自定义函数,内置函数,装饰器,迭代器,生成器)
    Python学习【第2篇】:Python数据结构
    统计一篇英文文章内每个单词出现频率,并返回出现频率最高的前10个单词及其出现次数
  • 原文地址:https://www.cnblogs.com/dragon-lan/p/15222173.html
Copyright © 2020-2023  润新知