zoukankan      html  css  js  c++  java
  • spring-boot

    这是一个方便的接口生成工具,并且他能提供接口单元测试,下面就介绍一下使用方式

    1. 先在你的工程当中引用到两个jar,这里使用maven

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

    2. 写swagger的配置文件

    import io.swagger.annotations.ApiOperation;
    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.ApiKey;
    import springfox.documentation.spi.DocumentationType;
    import springfox.documentation.spring.web.plugins.Docket;
    import springfox.documentation.swagger2.annotations.EnableSwagger2;
    
    import java.util.ArrayList;
    import java.util.List;
    
    @Configuration
    @EnableSwagger2
    public class Swagger2Configuration {
    
        /**
         * @author wujiaxing
         * <p>
         * 使用Swagger2只需三步
         * 1、导入Swaggerr依赖
         * 2、配置Docket的bean
         * 3、使用@Api等注解修饰
         * </p>
         */
        @Configuration
        @EnableSwagger2
        public class SwaggerConfig {
    
            @Bean
            public Docket createRestApi() {
                return new Docket(DocumentationType.SWAGGER_2)
                        //基本信息
                        .apiInfo(apiInfo())
                        //固定写法
                        .select()
                        // 两种方式
                        // 第一种:方法需要有ApiOperation注解才能生存接口文档,withMethodAnnotation(ApiOption.class),或者class带注解withClassAnnotation
                        // 第二种:定义一个扫描包位置,在目标包里面的所有带ApiOperation注释的都应用,RequestHandlerSelectors.basePackage("目标包名")
                        .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                        // 路径使用any风格
                        .paths(PathSelectors.any())
                        .build()
                        // 如何保护我们的Api,有三种验证(ApiKey, BasicAuth, OAuth)
                        .securitySchemes(security());
            }
    
            /**
             * 接口文档详细信息
             *
             * @return
             */
            private ApiInfo apiInfo() {
                return new ApiInfoBuilder().title("标题").description("这是一个描述").termsOfServiceUrl("http://www.localhost:8080").version("1.0.0").build();
            }
    
            private List<ApiKey> security() {
                ArrayList<ApiKey> apiKeys = new ArrayList<>();
                apiKeys.add(new ApiKey("token", "token", "header"));
                return apiKeys;
            }
        }
    }
    

      

    3. 最后如果是配置了必须有ApiOperation的注解才使用就需要在方法上添加注解, 如果是扫描包的形式,就不需要添加任何的注解

        @ApiOperation("hello2")
        @PostMapping(value = "/t2")
        public String hello3(@RequestParam String a){
            return "Test Hello3";
        }
    

      

    4. 测试效果,启动工程后,可以通过登录工程的swagger-ui.html地址查看结果如图

  • 相关阅读:
    利用.net Core 对程序集中的类 进行统一依赖注入
    接口中定义异步的方法
    在efcore 中创建类 通过实现IEntityTypeConfiguration<T>接口 实现实体类的伙伴类 实现FluentApi
    在vs2017 版本15.7.6中不支持2.1.0以上版本的net core sdk
    在.net core不同的版本中 webabi引用的包不同
    SQL语句中使用Group by
    DDD实战12 值对象不创建表,而是直接作为实体中的字段
    src与href的区别。
    cookies,sessionStorage 和 localStorage 的区别
    javascript阻止事件冒泡和浏览器的默认行为
  • 原文地址:https://www.cnblogs.com/oscar1987121/p/12092931.html
Copyright © 2011-2022 走看看