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

如何在SpringBoot中实现可重定向至指定URL的REST API

实现URL自动重定向功能的解决方案

别担心,作为Spring Boot新手遇到这类问题太正常了,我们一步步调整代码就能实现你想要的重定向效果:

第一步:修正Service层的查询逻辑

你当前的findUrlById返回的是List<Sortner>,但根据ID查询应该对应单个对象才合理。另外Spring Data JPA的JpaRepository自带了更规范的findById方法,返回Optional<Sortner>,能优雅处理找不到数据的情况:

@Service
public class SortnerService {
    @Autowired
    private SortnerRepo sortnerRepo;

    public Sortner addUrlByGet(String url) {
        Sortner sortner = new Sortner();
        sortner.setUrl(url);
        return sortnerRepo.save(sortner);
    }

    // 修改为返回Optional<Sortner>,适配单个对象查询
    public Optional<Sortner> findUrlById(Integer id){
        // 前提是你的SortnerRepo继承了JpaRepository<Sortner, Integer>
        return sortnerRepo.findById(id);
    }
}

第二步:修改控制器实现重定向

把原来的findUrlById控制器方法改成重定向逻辑,找到对应URL就返回跳转响应,找不到则返回404提示:

方案一:用ResponseEntity实现重定向

@GetMapping("/getUrlById")
public ResponseEntity<?> redirectToTargetUrl(@RequestParam Integer id) {
    return sortnerService.findUrlById(id)
            .map(sortner -> ResponseEntity.status(HttpStatus.FOUND)
                    .location(URI.create(sortner.getUrl()))
                    .build())
            .orElse(ResponseEntity.notFound().build());
}

方案二:用RedirectView简化代码

如果想更直观,也可以用RedirectView:

@GetMapping("/getUrlById")
public RedirectView redirectToTargetUrl(@RequestParam Integer id) {
    RedirectView redirectView = new RedirectView();
    sortnerService.findUrlById(id)
            .ifPresentOrElse(
                    sortner -> redirectView.setUrl(sortner.getUrl()),
                    () -> redirectView.setUrl("/404-not-found") // 可替换成你的自定义404页面路径
            );
    return redirectView;
}

额外优化小建议

  • 可以给Sortner实体的url字段加合法性校验,比如用@URL注解(需要引入Hibernate Validator依赖),避免存入无效URL。
  • addUrlByGet方法也可以添加参数校验,比如判断URL是否为空,提升接口健壮性。
  • 如果想让访问路径更简洁(比如localhost:8080/4),可以把控制器改成@GetMapping("/{id}"),用路径变量替代请求参数。

这样修改后,当你访问localhost:8080/getUrlById?id=4时,浏览器就会自动跳转到ID为4对应的目标URL啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 16:48:12