什么是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 条评论) “” |