Swagger框架

一、Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。

Swagger可以生成各种格式的接口文档,生成多种语言的客户端和服务器端的代码,以及在线接口的调式等。

二、SpringBoot集成Swagger

1、在SpringBoot项目中添加Swagger的依赖

2、编写配置类配置Swagger

Swagger实例Bean是Docket,所以通过配置Docket实例来配置Swagger。

//配置类
@Configuration
//开启Swagger2的自动配置
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket docket(){
        return new Docket(DocumentationType.SWAGGER_2);
    }
}

3、编写一个控制器,测试运行成功

@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String hello(){
        return "helloWorld";
    }
}

4、访问:http://localhost:8080/swagger-ui.html    可以看到Swagger的界面

三、Swagger的配置

1、通过apiInfo()属性配置文档信息

//配置类
@Configuration
//开启Swagger2的自动配置
@EnableSwagger2
public class SwaggerConfig {

    //配置多个分组
    @Bean
    public Docket docket1(){
        return new Docket(DocumentationType.SWAGGER_2).groupName("group1");
    }
    @Bean
    public Docket docket2(){
        return new Docket(DocumentationType.SWAGGER_2).groupName("group2");
    }
    @Bean
    public Docket docket3(){
        return new Docket(DocumentationType.SWAGGER_2).groupName("group3");
    }


    @Bean
    public Docket docket(){
        return new Docket(DocumentationType.SWAGGER_2)
                //如果没有配置分组,默认是default。通过groupName()方法即可配置分组
                .groupName("apesource")
                //可以通过apiInfo()属性配置文档信息
                .apiInfo(apiInfo())
                .select()  //通过.select()方法,去配置扫描接口,RequestHandlerSelectors配置如何扫描接口
                .apis(RequestHandlerSelectors.basePackage("com.apesource.springbootswagger01.controller"))
                .build();
    }
    //配置文档信息
    private ApiInfo apiInfo(){
        Contact contact = new Contact("联系人名字","http://xxx.xxx.com/联系人访问链接","联系人邮箱");
        return new ApiInfo(
                "Swagger学习",
                "学习演示如何配置Swagger",
                "V2.0",  //版本
                "http://xxx.xxx.com",
                contact,
                "Apach 2.0 许可", // 许可
                "许可链接", // 许可连接
                new ArrayList<>()// 扩展
            );
    }
}

四、常用注解

1、@Api:修饰整个类,描述Controller的作用

语法:@Api(tags="说明该类的作用,可以在UI界面上看到的注解",value = "/类的访问路径", description = "类的文字描述")

2、@ApiOperation:描述一个类的一个方法,说明方法的作用

语法:@ApiOperation(value = “接口说明”, httpMethod = “接口请求方式”, response = “接口返回参数类型”, notes = “接口发布说明”)

3、@ApiImplicitParam:一个请求参数

语法:@ApiImplicitParam(required = “是否必须参数”, name = “参数名称”, value = “参数具体描述”,dateType="变量类型”,paramType="请求方式”

header:请求参数的获取:@RequestHeader

query:请求参数的获取:@RrquestParam

path:请求参数的获取:@PathVariable

4、@ApiImplicitParam:多个请求参数

5、@ApiParam:单个参数描述

语法:@ApiParam(required = “是否必须参数”, name = “参数名称”, value = “参数具体描述”,dateType="变量类型”,paramType="请求方式”)

6、@ApiModel:用对象实体来作为入参

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值