swagger3与swagger2区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swagger3与swagger2区别相关的知识,希望对你有一定的参考价值。
参考技术A Swagger3 是在 Swagger2 上做了大版本升级,使用方式和Swagger2大体一致,只是需要注意区别配置地方,Swagger3使用相关依赖版本如下:Swagger认识与使用 Swagger 实现接口文档
文章目录
1. 介绍
使用 Swagger 你只需要按照它的规范去定义接口及接口相关的信息,再通过 Swagger 衍生出来的一系列项目和工具,就可以做到生成各种各式的接口文档,以及在线接口调试页面等等。
Swagger 官网:https://swagger.io/
由于直接使用 Swagger 操作是比较繁琐的,因此可以使用一些基于 Swagger 实现的框架,例如 knife4j,它是一个为 Java MVC 框架集成 Swagger 生成 Api 文档的增强解决方案。
2. 使用方式
-
导入 knife4j 的 maven 坐标
<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>3.0.3</version> </dependency>
-
导入 knife4j 的相关配置类(WebMvcConfig)
@Configuration @EnableSwagger2 // 开启 Swagger 文档的功能 @EnableKnife4j public class WebMvcConfig extends WebMvcConfigurationSupport @Bean public Docket createRestApi() // 文档类型 return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.dmw.demo.controller")) // 项目中 controller 的包路径 .paths(PathSelectors.any()) .build(); private ApiInfo apiInfo() return new ApiInfoBuilder() .title("项目名称") .version("项目版本") .description("项目描述") .build();
-
设置静态资源映射(WebMvcConfig 类中的 addResourceHandlers 方法),否则接口文档页面无法访问
@Override protected void addResourceHandlers(ResourceHandlerRegistry registry) registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
-
如果希望不登陆就能够访问接口文档,那么要在拦截器或者过滤器中放行以下请求路径:
"/doc.html", "/webjars/**", "/swagger-resources", "/v2/api-docs"
-
项目启动后通过访问
ip:端口号/doc.html
就能够看到接口文档的信息 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yVDG9QH8-1665503782253)(C:/Users/bbbbbge/Pictures/接单/1665423831678.png)]
3. 常用注解
注解 | 说明 |
---|---|
@Api | 用在请求的类上,例如 Controller,表示对类的说明 |
@ApiModel | 用在类上,通常是实体类,表示一个返回响应数据的信息 |
@ApiModelProperty | 用在属性上,描述响应类的属性 |
@ApiOperation | 用在请求的方法上,说明方法的用途 |
@ApiImplicitParams | 用在请求的方法上,表示一组参数说明 |
@ApiImplicitParam | 用在 @ApiImplicitParams 注解中,指定一个请求参数的各个方面 |
|
| @ApiImplicitParam
| 用在 @ApiImplicitParams 注解中,指定一个请求参数的各个方面 |
以上是关于swagger3与swagger2区别的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot2 入门学习14.使用SpringDoc的 Swagger
Spring Boot 整合 Swagger3 如何生成接口文档?