zoukankan      html  css  js  c++  java
  • Swagger介绍

    1.Swagger解决了什么问题?

     前后端分离时期,前端人员和后端人员如果没有一个统一的接口文档,后期对接会产生很多问题,Swagger可以解决此类问题。

    • Swagger号称世界上最流行的Api框架;
    • RestFul Api文档在线自动生成工具;
    • Api文档和API实时同步。

    2.Springboot集成Swagger

    2.1相关依赖:

            <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>2.9.2</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>2.9.2</version>
            </dependency>

    Swagger-UI 是一款Restful接口的文档在线自动生成+功能测试功能软件。

    2.2编写Swagger配置类

    @Configuration//配置类
    @EnableSwagger2 //开启swagger2
    public class SwaggerConfig {
    
        @Bean
        public Docket docket(){
            return new Docket(DocumentationType.SWAGGER_2)
                    .groupName("kerwin")//分组,可以创建多个Docket配置多个分组。
                    .apiInfo(apiInfo())
                    .enable(true)//配置是否启动swagger
                    .select()
                    /**
                     *RequestHandlerSelectors:配置扫描方式
                     *basePackage: 指定扫描的包
                     *any():扫描全部
                     *withMethodAnnotation():方法上的注解
                     *withClassAnnotation():类上的注解
                     */
                    .apis(RequestHandlerSelectors.basePackage("com.kerwin.controller"))
                    //过滤的路径()
                    //.paths(PathSelectors.ant("/kerwin/**"))
                    .paths(PathSelectors.any())
                    .build();
        }
    
        //配置API文档信息
        private ApiInfo apiInfo() {
            //联系人信息
            Contact contact = new Contact("kerwin", "baidu.com", "111@qq.com");
            return new ApiInfo(
                    "kerwin api文档",
                    "不以物喜,不以己悲",
                    "1.0",
                    "http://baidu.com",
                    contact,
                    "Apache 2.0", //许可
                    "http://www.apache.org/licenses/LICENSE-2.0",
                    new ArrayList()); //扩展
        }
    }

    2.3启动项目,访问服务地址:http://localhost:8080/swagger-ui.html,即可看到Swagger界面

    3.Swagger常用注解

    3.1用于实体类:

    1. @ApiModel( "实体类说明")
    2. @ApiModelProperty(value = "xxx属性说明",hidden = true),作用在类方法和属性上,hidden设置为true可以隐藏该属性

    3.3用于控制层:

    1. @ApiOperation("接口说明"),用在接口方法上;
    2. @ApiParam("参数说明") ,用在请求参数上;
    3. @Api(tags = "xxx模块说明"),作用于模块类上。

    4.总结

    1. 可以给对象属性或者接口增加注释信息;

    2. 接口文档实时更新;

    3. 可以在线测试接口。

  • 相关阅读:
    @Autowired 注解是如何实现的?
    工作 3 年的同事不懂 isEmpty 和 isBlank 的区别,我真是醉了。。
    4 个单词,谷歌返回 16 个 SQL 注入漏洞...
    MySQL 更新不成功,事务问题搞清楚了吗?
    Python Web应用如何部署?
    mapbox加载postgis矢量切片
    tile2lon:地图瓦片编号与经纬度的换算关系
    shp2pgsql:将shapefile导入postgis数据库
    postgreSQL表添加ID自增列
    postgreSQL连接配置
  • 原文地址:https://www.cnblogs.com/jiezai/p/13586874.html
Copyright © 2011-2022 走看看