Knfie4j openapi3 基于Operation注解暴露接口

本文介绍了如何使用Knfie4jopenapi3库,通过@Operation注解来筛选并仅暴露指定的接口。通过自定义继承OpenApiWebMvcResource的类,重写isMethodToFilter方法,实现了接口的动态过滤。Maven依赖于knife4j-openapi3-spring-boot-starter版本4.3.0。
摘要由CSDN通过智能技术生成

Knfie4j openapi3 基于Operation注解暴露接口

记录下只暴露被Operation注解修饰的接口的方法

maven 依赖

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

自定义类继承 OpenApiWebMvcResource 类,该类是knfei4j接口文档的控制器,重写 isMethodToFilter 方法,该方法判断接口是否显示
isMethodToFilter  方法的解释

@Override
    protected boolean isMethodToFilter(HandlerMethod handlerMethod) {
        return handlerMethod.hasMethodAnnotation(Operation.class) && super.isMethodToFilter(handlerMethod);
    }

效果

之前

在这里插入图片描述

之后

在这里插入图片描述

整个类代码:

import io.swagger.v3.oas.annotations.Operation;
import org.springdoc.core.*;
import org.springdoc.core.customizers.SpringDocCustomizers;
import org.springdoc.webmvc.api.OpenApiWebMvcResource;
import org.springframework.beans.factory.ObjectFactory;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.method.HandlerMethod;

/**
 * 2023-12-12 21:56
 */
@RestController
public class OpenApiWebMvcResourceX extends OpenApiWebMvcResource {
    public OpenApiWebMvcResourceX(ObjectFactory<OpenAPIService> openAPIBuilderObjectFactory, AbstractRequestService requestBuilder, GenericResponseService responseBuilder, OperationService operationParser, SpringDocConfigProperties springDocConfigProperties, SpringDocProviders springDocProviders, SpringDocCustomizers springDocCustomizers) {
        super(openAPIBuilderObjectFactory, requestBuilder, responseBuilder, operationParser, springDocConfigProperties, springDocProviders, springDocCustomizers);
    }

    @Override
    protected boolean isMethodToFilter(HandlerMethod handlerMethod) {
        return handlerMethod.hasMethodAnnotation(Operation.class) && super.isMethodToFilter(handlerMethod);
    }
}

附:OpenApi 规范中文版

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值