swagger2笔记

Swagger 使用学习

  • Restful API文档在线自动生成文档,同步更新;
  • 号称世界上最流行的API框架;
  • 直接运行,可以在线测试API接口
  • 支持多种语言;
使用教程

导入依赖

        <!--swagger 集成-->
        <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>

配置文件

//配置文件开启Swagger2
@EnableSwagger2
//配置类中使用此注解开启Swagger2,注入下面代码经行配置
    //注入Swagger2的Docket的配置实例
    @Bean
    public Docket docket(){
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo());
    }
    //Swagger2配置信息初始化
    private ApiInfo apiInfo(){
        //作者信息
        Contact smxr = new Contact("smxr", "https://smxr.com", "772519606@qq.com");
        // 标题  描述  版本  组织  作者  许可  许可路径
        return  new ApiInfo(
                "smxr的Swagger学习API文档",
                "个人学习练习作品",
                "1.1",
                "https://smxr.com",
                smxr,
                "Apache 2.0",
                "http://www.apache.org/licenses/LICENSE-2.0",
                new ArrayList());
    }
配置扫描接口
    //注入Swagger2的Docket的配置实例
    @Bean
    public Docket docket(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                //enable()  是否启动Swagger,如果启动为true,否false则不能在游览器中访问;
                .enable(swagger)
                //RequestHandlerSelectors  配置要扫描接口的方式
                    //basePackage   指定要扫描的包
                    //any()     扫描全部
                    //none()    不扫描
                    //withClassAnnotation()     扫描类上的注解,参数是一个注解类的类对象
                    //withMethodAnnotation()    扫描方法上的注解,参数是一个注解类的类对象
                .select()
                    .apis(RequestHandlerSelectors.basePackage("com.smxr.controller"))
                    //.paths(PathSelectors.ant("/smxr/**")) //paths()   过滤什么路径,不扫描那个
                    .build()
                ;
    }
Swagger2的开启和关闭
application-dev.yml--------------------------------
    
#swagger2 开启和关闭
swagger:
  enable: true

application-prod.yml-------------------------------
    
#swagger2 开启和关闭
swagger:
  enable: false

配置类中-------------------------------------------
      //获取swagger环境属性
    @Value("${swagger.enable}")
    private boolean swagger;
      
      
    //注入Swagger2的Docket的配置实例
    @Bean
    public Docket docket(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                //enable()  是否启动Swagger,如果启动为true,否false则不能在游览器中访问;
                .enable(swagger)
                //RequestHandlerSelectors  配置要扫描接口的方式
                    //basePackage   指定要扫描的包
                    //any()     扫描全部
                    //none()    不扫描
                    //withClassAnnotation()     扫描类上的注解,参数是一个注解类的类对象
                    //withMethodAnnotation()    扫描方法上的注解,参数是一个注解类的类对象
                .select()
                    .apis(RequestHandlerSelectors.basePackage("com.smxr.controller"))
                    //.paths(PathSelectors.ant("/smxr/**")) //paths()   过滤什么路径,不扫描那个
                    .build()
                ;
    }
配置API文档的分组
    @Bean
    public Docket docket(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .groupName("smxr")//分组  一个Docket的实例为一个组,需要多个的话只需注入多个Docket实例并经行单独的配置即可
                //enable()  是否启动Swagger,如果启动为true,否false则不能在游览器中访问;
                .enable(swagger)
                //RequestHandlerSelectors  配置要扫描接口的方式
                    //basePackage   指定要扫描的包
                    //any()     扫描全部
                    //none()    不扫描
                    //withClassAnnotation()     扫描类上的注解,参数是一个注解类的类对象
                    //withMethodAnnotation()    扫描方法上的注解,参数是一个注解类的类对象
                .select()
                    .apis(RequestHandlerSelectors.basePackage("com.smxr.controller"))
                    //.paths(PathSelectors.ant("/smxr/**")) //paths()   过滤什么路径,不扫描那个
                    .build()
                ;
    }
接口定义注解
@ApiModel("消息返回体") //返回数据模型
public class ResponseBean implements Serializable {
    //返回数据模型属性
    @ApiModelProperty(name = "code码",dataType = "Int",value = "是否正确响应")
    private  int code;
    @ApiModelProperty(name = "消息说明",dataType = "String",value = "消息的说明")
    private  String message;
    @ApiModelProperty(name = "返回数据",dataType = "Object",value = "返回的数据")
    private  Object data;
    @RestController
    @RequestMapping("/vue")
    @Api(tags = "用户商城接口")//说明该类的作用,可以在UI界面上看到的注解,如果tags多个值,会生成多个list
    public class AdminShopController {

	@GetMapping("/signIn")
    @ApiOperation(value = "vue初始化登录接口",notes = "说明该接口,提示内容") //接口说明
    public ResponseBean vueLogin(@ApiParam(name = "user",value = "账户ID, 参数说明",required = true) @RequestParam String account,
                                 @ApiParam("密码") @RequestParam String pass){//@ApiParam() 接口数据说明  属性required 是否必须
        if (account==null||pass==null){
            return ResponseUtils.Error(null,"账户密码不能为空!");
        }
        if(!account.equals("772519606@qq.com")||!pass.equals("123456")) return ResponseUtils.Error(null,"账户密码不能为空!");
        System.out.println("账户密码:"+account+pass);
        byte[] bytes = (account + pass).getBytes();
        String string = Base64.getEncoder().encodeToString(bytes);
        System.out.println("string:"+string);
        return ResponseUtils.Success(string);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值