美文网首页
Swagger-简单使用

Swagger-简单使用

作者: 石头耳东 | 来源:发表于2022-04-28 15:07 被阅读0次

零、本文纲要

  • 一、 Swagger
  1. Swagger介绍
  2. knife4j
  • 二、 Swagger快速入门
  1. 导入knife4j相关依赖
  2. 导入knife4j相关配置类
  3. 设置静态资源
  4. 放行对应请求路径
  • 三、 Swagger常用注解
  1. 常用注解
  2. 注解使用案例
  3. 访问在线接口文档

一、 Swagger

1. Swagger介绍

使用Swagger需要按照规范去定义接口,以及接口相关信息。
通过Swagger衍生项目和工具,可以生成各种格式接口文档,以及在线接口调试页面等。

2. knife4j

knife4j是Java MVC框架继承Swagger生成Api文档的增强解决方案。

二、 Swagger快速入门

1. 导入knife4j相关依赖

<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-spring-boot-starter</artifactId>
    <version>3.0.2</version>
</dependency>

2. 导入knife4j相关配置类
3. 设置静态资源

添加@EnableSwagger2、@EnableKnife4j注解
设置Docket第三方Bean

@Slf4j
@Configuration
@EnableSwagger2 // 开启对Swagger的支持
@EnableKnife4j // 开启对Knife4j的支持(Swagger增强)
public class WebMvcConfig extends WebMvcConfigurationSupport {

    ... ...
    
    @Bean
    public Docket createRestApi(){
        // 文档类型
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo()
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.stone.project.controller"))
                .paths(PathSelectors.any())
                .build();
    }
    
    private ApiInfo apiInfo(){
        return new ApiInfoBuilder()
                .title("项目名称")
                .version("1.0")
                .description("某某项目接口文档")
                .build();
    } 
    
    /**
     * 配置静态资源映射的方法:Spring Boot 默认静态页面映射是在 /static、/public 路径下,此处自定义
     * @param registry 资源映射处理对象
     */
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        ... ...
        // 此处配置放行的资源就是Swagger框架生成的静态页面
        registry.addResourceHandler("doc.html")
                .addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
    ... ...

}

4. 放行对应请求路径

如果设置了Filter对请求路径进行拦截过滤,此处需要进行放行。

/**
 * 检查用户是否已经登录的过滤器
 */
@Slf4j
@WebFilter(filterName = "loginCheckFilter", urlPatterns = "/*")
public class LoginCheckFilter implements Filter {

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
            throws IOException, ServletException {
        ... ...
        // 定义不需要处理的请求路径
        String[] urls = new String[]{
                ...,
                // 添加Swagger相关的请求路径,予以放行
                "/doc.html",
                "/webjars/**",
                "/swagger-resources",
                "/v2/api-docs"
        };
        ... ...
    }

三、 Swagger常用注解

1. 常用注解

注解 说明
@Api 用在请求的类上,如Controller,表示对类的说明
@ApiModel 用在类上,通常是实体类Entity,表示一个返回响应数据的信息
@ApiModelProperty 用在属性上,描述响应类的属性
@ApiOperation 用在请求的方法上,说明方法的用途、作用
@ApiImplicitParams 用在请求的方法上,表示一组参数说明
@ApiImplicitParam 用在@ApiImplicitParams注解中,指定一个请求参数的各个方面

2. 注解使用案例

  • ① @ApiModel与@ApiModelProperty使用
/**
 * 套餐
 */
@Data
@ApiModel("套餐")
public class Setmeal implements Serializable {
    ... ...
    @ApiModelProperty("主键")
    private Long id;
    ... ...
}
  • ② @Api使用
/**
 * 套餐管理
 */
@Slf4j
@RestController
@RequestMapping("/setmeal")
@Api(tags = "套餐相关接口")
public class SetmealController {
    ... ...
}
  • ③@ApiOperation与@ApiImplicitParams与@ApiImplicitParam使用
/**
* 套餐分页查询
* @param page 当前页码
* @param pageSize 页容量
* @param name 套餐名称
* @return 分页结果
*/
@GetMapping("/page")
@ApiOperation(value = "套餐分页查询接口")
@ApiImplicitParams({
    @ApiImplicitParam(name = "page", value = "页码", required = true),
    @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = true),
    @ApiImplicitParam(name = "name", value = "套餐名称", required = false)
})
public R<Page<SetmealDto>> page(int page, int pageSize, String name){
    ... ...
}

3. 访问在线接口文档

启动对应项目:http://localhost:8080/doc.html,访问doc.html文档即可。

四、结尾

以上即为Swagger-简单使用的全部内容,感谢阅读。

相关文章

  • Swagger-简单使用

    零、本文纲要 一、 Swagger Swagger介绍 knife4j 二、 Swagger快速入门 导入knif...

  • springboot 集成 swagger 和 swagger-

    1 项目集成: 第一步:pom.xml 添加相关的依赖jar包 第二步: 创建两个相关的配置类,记得添加注解->...

  • Swagger-强大的API文档工具

    Swagger 是一款RESTFUL接口的、基于YAML、JSON语言的文档在线自动生成、代码自动生成的工具。 官...

  • 简单使用

    创建模型 过滤器 我们有一些字段和我们想让用户筛选的基础上 名称、价格或release_date。 我们创建一个 ...

  • gorange

    数组中简单使用 map中简单使用

  • 简单使用使用kaggle

    向我这样的条件不好的可以考虑借助云gpu来加速训练,借助kaggle可以在kaggle服务器上训练数据,kaggl...

  • springboot和swagger2冲突 Swagger-

    springboot和swagger2冲突及Swagger-ui/index.html界面404错误解决办法 sw...

  • 零碎的小程序笔记

    目录 template的简单使用WXS的简单使用npm的简单使用倒计时js的实现wx:for的使用一些js方法记录...

  • 命令行的简单使用

    Git命令行的简单使用,仅供自己使用 pod命令行的简单使用

  • 单元测试和OCMock

    OCMock使用一、安装及简单使用:使用Cocoapod引入:pod 'OCMock' 简单使用:新建一个单元测试...

网友评论

      本文标题:Swagger-简单使用

      本文链接:https://www.haomeiwen.com/subject/llysyrtx.html