SpringBoot整合Swagger测试文档

什么是swagger?简单来说,Swagger是一个功能强大的接口管理工具,并且提供了多种编程语言的前后端分离解决方案;

1.引入POM

    io.springfox    springfox-swagger2    ${swagger.version}    io.springfox    springfox-swagger-ui    ${swagger.version}老版本2.7.0(旧ui界面)新版本2.9.2(新ui界面) 

2:编写SwaggerConfig配置

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.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;@Configuration //每个配置类都需要这个注解@EnableSwagger2//swagger注解public class SwaggerConfig {    @Bean    public Docket webApiConfig(){        return new Docket(DocumentationType.SWAGGER_2)                .groupName("webApi")                .apiInfo(webApiInfo())                .select()                .paths(Predicates.not(PathSelectors.regex("/admin/.*")))                .paths(Predicates.not(PathSelectors.regex("/error.*")))                .build();    }    private ApiInfo webApiInfo(){        return new ApiInfoBuilder()                .title("臭宝的自定义Swagger")                .description("이문서에서는마이크로서비스인터페이스정의에대해설명합니다!")                .version("1.0")                .build();    }}

3:自定义ResultCode 返回状态码

public interface ResultCode {  //状态码独立开发由自己定义,多人开发由团队来设定规范    public static Integer SUCCESS = 20000; //成功     public static Integer ERROR = 20001; //失败}

4:定义返回结果

import io.swagger.annotations.ApiModelProperty;import lombok.Data;import java.util.HashMap;import java.util.Map;//统一返回结果的类@Datapublic class R {    @ApiModelProperty(value = "是否成功")    private Boolean success;    @ApiModelProperty(value = "返回码")    private Integer code;    @ApiModelProperty(value = "返回消息")    private String message;    @ApiModelProperty(value = "返回数据")    private Map data = new HashMap();    //把构造方法私有    private R() {}    //成功静态方法    public static R ok() {        R r = new R();        r.setSuccess(true);        r.setCode(ResultCode.SUCCESS);        r.setMessage("成功");        return r;    }    //失败静态方法    public static R error() {        R r = new R();        r.setSuccess(false);        r.setCode(ResultCode.ERROR);        r.setMessage("失败");        return r;    }    public R success(Boolean success){        this.setSuccess(success);        return this;    }    public R message(String message){        this.setMessage(message);        return this;    }    public R code(Integer code){        this.setCode(code);        return this;    }    public R data(String key, Object value){        this.data.put(key, value);        return this;    }    public R data(Map map){        this.setData(map);        return this;    }}

最后一步:启动类

@EnableSwagger2@SpringBootApplication@ComponentScan("com.atguigu")public class OssApplication {    public static void main(String[] args) {        SpringApplication.run(OssApplication.class,args);    }}

注意事项:

1.如果放到其他模块中,到pom文件引入引入进来,

在用@ComponentScan扫描swagger包下的文件;

2.如果打开浏览器输入ip+port+path出现循环弹窗问题,

就到启动类上加:@EnableSwagger2注解即可解;

示例http://localhost:8001/swagger-ui.html (2.7.0Version)

新版本:http://localhost:8088/swagger-ui(不需要再单独写.html)

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章