Swagger2

作者: 任笙_8b8c | 来源:发表于2021-04-05 17:00 被阅读0次
    - 使用步骤
    • 一.下载依赖 去maven官网收索springfox-swag


      图片.png

    介绍

    在以往的web项目开发中,大家会经常的使用postman来测试接口和使用文档来编写接口,大量的重复劳动,相信大家已经厌烦,为了解决它使大家能有更多的时间专注于编码,一款叫做swagger2的软件诞生了,只需要导入依赖,并在控制层加上@Api这个注解就能快速生成一个接口文档,并能像postman一样对接口进行测试。

    快速入门

    导入依赖后直接加上@EnableSwagger2 就可以了

    第一步、在pom中导入依赖

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

    第二步、在Application中加入注解@EnableSwagger2

    第三步、打开URL

    打开URL,URL格式为:你的端口+/swagger-ui.html

    例如:http://localhost:9011/swagger-ui.html

    [图片上传失败...(image-a2cf79-1617613050501)]

    测试接口

    1、点开其中一个接口

    [图片上传失败...(image-40653d-1617613050501)]

    2、输入ID点击Try it out

    [图片上传失败...(image-5baa0d-1617613050501)]

    3、查看测试结果

    [图片上传失败...(image-5896fc-1617613050501)]

    定制化你的接口文档

    如果觉得页面内容太少了,对它默认的内容不太满意,需要加点描述使它更加详细,也可以选择自己加上一些描述内容。

    编写一个配置类

    package com.tang.swagger.config;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import springfox.documentation.builders.ApiInfoBuilder;
    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;
    
    //标注此类是配置类  里面有@Component吧自身注入到spring进行管理
    @Configuration
    @EnableSwagger2
    public class SwaggerConfig {
    
        // 扫描所有带@ApiOperation注解的类
        @Bean
        public Docket api() {
            return new Docket(DocumentationType.SWAGGER_2).groupName("A")
                    .apiInfo(apiInfo())
                    .select()
                    .apis(RequestHandlerSelectors.basePackage("com.tang.swagger.controller")) //包名
                    .build();
        }
    
        @Bean
        public Docket api1() {
            return new Docket(DocumentationType.SWAGGER_2).groupName("B")
                    .apiInfo(apiInfo())
                    .select()
                    .apis(RequestHandlerSelectors.basePackage("com.tang.swagger.controller"))
                    .build();
        }
    
        //api接口作者相关信息
        private ApiInfo apiInfo() {
            Contact contact = new Contact("文档作者信息", "", "XXX@qq.com");
            ApiInfo apiInfo = new ApiInfoBuilder().license("").title("唐的SwaggerApi").description("接口文档").contact(contact).version("3.0").build();
            return apiInfo;
        }
    
    
    }
    
    

    @Configuration
    public class SwaggerConfig {
    // 扫描所有带@ApiOperation注解的类
    @Bean
    public Docket api() {
    return new Docket(DocumentationType.SWAGGER_2)
    .apiInfo(apiInfo())
    .select()
    .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
    .build();
    }

    //api接口作者相关信息
    private ApiInfo apiInfo() {
    Contact contact = new Contact("文档作者信息", "", "XXX@qq.com");
    ApiInfo apiInfo = new ApiInfoBuilder().license("").title("标题").description("接口文档").contact(contact).version("3.0").build();
    return apiInfo;
    }
    }</pre>

    [图片上传失败...(image-7cd9f8-1617613050501)]

    在Controller类和方法上加注解

    在类上加@Api(description = "这是我全部的get方法")

    在方法上加@ApiOperation(value = "根据ID查询一个品牌")


    图片.png 图片.png

    注解

    --value 对资源的标签名

    --description 描述

    @ApiOperation :对方法的注解

    --value 对资源的标签名

    --notes 对方法操作的描述

    @ApiImplicitParams :对多个参数的描述的集合

    @ApiImplicitParam:在@ApiImplicitParams里面

    --name 属性字段名

    --value 属性字段含义

    --required 是否必填(true/false)

    --paramType 参数位置("query"为参数放置url,"body"为post方法放在body里...)

     paramType:表示参数放在哪个地方
        header-->请求参数的获取:@RequestHeader(代码中接收注解)
        query-->请求参数的获取:@RequestParam(代码中接收注解)
        path(用于restful接口)-->请求参数的获取:@PathVariable(代码中接收注解)
        body-->请求参数的获取:@RequestBody(代码中接收注解)
        form(不常用)
    

    --dataType 参数类型("String"、"int"...)

    @ApiModel :对实体类的描述

    @ApiModelProperty :对实体字段的描述

    --name 属性名称

    --value 属性描述

    --hidden 是否不再swagger页面展示(true/false)</pre>

    相关文章

      网友评论

          本文标题:Swagger2

          本文链接:https://www.haomeiwen.com/subject/cbsdkltx.html