【问题标题】:Spring REST API - How to resolve Ambuiguity in AntPattern matcherSpring REST API - 如何解决 Ant 模式匹配器中的歧义
【发布时间】:2022-11-04 16:12:02
【问题描述】:

我有一个具有模式的请求映射路径,并且可能位于包含特殊字符的路径的中间或末尾(很可能是“/”和“-”)

@RequestMapping("path1/{pattern}")@RequestMapping("path1/{pattern}/remainingPath")

可能性1 - /order/orderId12/5 需要提取orderId12/5

可能性 2 - /order/orderId12/5/details/update/dispatched 并且只需要提取 orderId12/5

到目前为止我尝试了什么:

  1. 像使用 PathPattern

    @RequestMapping("/order/**")
    @RequestMapping("/order/{*orderId}/details/update/{status}")
    

    但没有按照Spring documentation工作

    1. 使用 AntPatternMatcher

      @RequestMapping("/order/**")
      @RequestMapping("/order/**/details/update/{status}")
      

    这里有歧义,因为第二个请求回退到第一个请求映射

    如何解决歧义问题?

    谢谢!

【问题讨论】:

  • 你是如何配置 AntPatternMatcher 的使用的?

标签: java spring-boot rest matcher


【解决方案1】:

您可以使用一种简单的方法作为 @PathVariable :

@RequestMapping("/order/{id}")
public String getById(@PathVariable("id") int id) {
  System.out.println("id is : " + id);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-19
    • 2011-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    相关资源
    最近更新 更多