You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在运行时通过逻辑判断修改API端点路径?

如何通过if-else逻辑动态修改接口端点路径

如果你不想用配置文件动态注入的方式,可以通过自定义RequestMappingHandlerMapping来实现基于if-else逻辑的端点路径修改,以下是具体实现步骤:

  • 自定义RequestMappingHandlerMapping子类,重写getMappingForMethod方法,在方法内添加if-else逻辑替换路径:
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
import java.lang.reflect.Method;

public class CustomRequestMappingHandlerMapping extends RequestMappingHandlerMapping {
    @Override
    protected RequestMappingInfo getMappingForMethod(Method method, Class<?> handlerType) {
        RequestMappingInfo originalMapping = super.getMappingForMethod(method, handlerType);
        if (originalMapping != null) {
            // 判断原端点是否为目标路径,执行替换逻辑
            if (originalMapping.getPatternsCondition().getPatterns().contains("/old-endpoint")) {
                return originalMapping.mutate()
                        .paths("/new-point")
                        .build();
            }
            return originalMapping;
        }
        return null;
    }
}
  • 将自定义的HandlerMapping注册到Spring容器:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;

@Configuration
public class WebConfig {
    @Bean
    public RequestMappingHandlerMapping requestMappingHandlerMapping() {
        return new CustomRequestMappingHandlerMapping();
    }
}

这种方式直接在请求映射的核心处理环节修改路径,完全依靠代码内的if-else逻辑判断,无需依赖配置文件、请求参数或路径变量,匹配你的需求。

内容的提问来源于stack exchange,提问作者feyfhe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 15:07:13