swagger---Api框架

  Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。它可以在线生成接口文档,并测试接口功能,在前后端分离开发中起着很重要的作用。接下来就开始使用swagger

  首先依旧得在pom.xml文件中导入jar包

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

  然后写一个测试用的接口

@RestController
public class SwaggerTestApi {
    @RequestMapping("/test")
    public String swaggerTest(){
        return "swagger 测试接口";
    }
}

  配置swagger

@Configuration  //让Spring来加载该类配置
@EnableSwagger2 //开启swagger,这个注解也可以在启动类中配置
public class SwaggerConfig {
}

  完成上面后,就可以使用,浏览器访问http://localhost:8080/swagger-ui.html#/,就可以看到接口信息
在这里插入图片描述
  当然这只是乞丐版的配置,啥也没用,接下来我们需要在这个基础上去增加配置,这里提供两种写法

//api接口
@Api(tags = "swagger测试api")
@RestController
public class SwaggerTestApi {
    @ApiOperation(value = "测试接口")
    @GetMapping("/test")
    public String swaggerTest(){
        return "swagger 测试接口";
    }
}

//swagger配置
@Configuration  //让Spring来加载该类配置
@EnableSwagger2 //开启swagger,这个注解也可以在启动类中配置
public class SwaggerConfig {
    @Bean   //配置swagger的Docket的bean实例
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())//文档信息
                .select()
//                .apis(RequestHandlerSelectors.basePackage(""))//指定要扫描的包
//                .apis(RequestHandlerSelectors.any())//扫描全部
//                .apis(RequestHandlerSelectors.none())//都不扫描
//                .apis(RequestHandlerSelectors.withClassAnnotation())//扫描类上的注解
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))//扫描方法上的注解
                .paths(PathSelectors.any())//过滤
                .build();
    }

    /**
     * swagger信息
     *
     * @return
     */
    private ApiInfo apiInfo() {
        //作者信息
        Contact contact = new Contact("華", "https://blog.csdn.net/weixin_45481406", "");
        /**
         * 这种写法不能省略参数
         */
//        return new ApiInfo(
//                "SwaggerApi文档",//标题
//                "这是一个很牛逼的作者",//描述
//                "1.0",  //版本
//                "https://blog.csdn.net/weixin_45481406",//组织
//                contact,//作者信息
//                "Apache 2.0",
//                "http://www.apache.org/licenses/LICENSE-2.0",
//                new ArrayList());
        /**
         * 这种写法可以省略不必要的参数
         */
        return new ApiInfoBuilder()
                .title("SwaggerApi文档")
                .description("这是一个很牛逼的作者")
                .version("1.0.0")
                .build();
    }
}

  接口分组,如果接口太多,可以尝试对接口进行分组展示,增加groupName属性,其他信息请参考前面的写法,注意不能重复

    @Bean
    public Docket docket1() {
        return new Docket(DocumentationType.SWAGGER_2).groupName("A");
    }

    @Bean
    public Docket docket2() {
        return new Docket(DocumentationType.SWAGGER_2).groupName("B");
    }

    @Bean
    public Docket docket3() {
        return new Docket(DocumentationType.SWAGGER_2).groupName("C");
    }

在这里插入图片描述
  给大家我的git源码,有兴趣的小伙伴可以看看具体的实现(一直在更新中)
git地址:https://github.com/peach-tec/peachsys

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

華小灼

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

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

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

打赏作者

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

抵扣说明:

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

余额充值