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

如何变更API端点并保留旧端点的可用状态?

实现新旧API端点共存的方案

针对你需要同时保留旧API端点(/home/download)和新端点(/home/document/download)的需求,这里有几个简单直接的实现方案:

方案一:控制器上同时配置新旧基础路径

直接在DocumentController的@RequestMapping注解中添加旧的基础路径,让控制器同时响应两个前缀下的请求:

class Endpoints {
  public static final DOCUMENT_HOME = "/home/document";
  public static final OLD_DOCUMENT_HOME = "/home";
  public static final DOWNLOAD = "/download";
}

@RequestMapping(value = {Endpoints.OLD_DOCUMENT_HOME, Endpoints.DOCUMENT_HOME})
class DocumentController {
  @GetMapping(value = Endpoints.DOWNLOAD)
  public void download();
}

这样配置后,/home/download(旧端点)和/home/document/download(新端点)都会映射到同一个download方法,完美实现共存。

方案二:给方法配置多个映射路径

如果不想修改控制器的基础路径,也可以直接在download方法上同时指定完整的新旧端点路径:

class Endpoints {
  public static final DOCUMENT_HOME = "/home/document";
  public static final DOWNLOAD = "/download";
  public static final OLD_DOWNLOAD_FULL_PATH = "/home/download";
}

@RequestMapping(Endpoints.DOCUMENT_HOME)
class DocumentController {
  @GetMapping(value = {Endpoints.DOWNLOAD, Endpoints.OLD_DOWNLOAD_FULL_PATH})
  public void download();
}

这种方式更灵活,适合只需要保留单个方法旧端点的场景。

方案三:添加重定向控制器(推荐用于过渡阶段)

如果希望逐步引导用户切换到新端点,可以专门写一个处理旧端点的控制器,将请求重定向到新端点:

@RequestMapping("/home")
class OldDocumentRedirectController {
  @GetMapping("/download")
  public String redirectToNewDownload() {
    return "redirect:/home/document/download";
  }
}

这样用户访问旧端点时会自动跳转到新端点,既保证了兼容性,又能让调用方逐步迁移到新路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 03:10:56