V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hackingwu
V2EX  ›  程序员

如何如果一个请求 path,找到一个接口定义?

  •  
  •   hackingwu ·
    hackingwu · 2021-12-20 11:30:05 +08:00 · 1193 次点击
    这是一个创建于 1062 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如何如果一个请求 path ,找到一个接口定义。 原因是会有 path variable 的存在。 比如我在数据库存储定义 /v2ex/{name}/{age} 我有一个请求 /v2ex/name1/11 能正确找到上述的定义中去呢?

    3 条回复    2021-12-20 12:52:56 +08:00
    timethinker
        1
    timethinker  
       2021-12-20 11:42:17 +08:00
    如果你想直接通过 SQL 来进行匹配,可以使用正则表达式,取决于数据库支持的函数和运算符。不过看来这种元数据不会太多,因此全表扫描也是可以接受的。

    可以看一下 Spring 是如何匹配的: https://github.com/spring-projects/spring-framework/blob/main/spring-core/src/main/java/org/springframework/util/AntPathMatcher.java
    leonme
        2
    leonme  
       2021-12-20 12:44:54 +08:00 via iPhone
    不知道要表达什么?重新组织下语言吧
    InDom
        3
    InDom  
       2021-12-20 12:52:56 +08:00
    如果你是一个后端,新接手了一个项目,然后提出这个问题:
    那我猜你问的是路由相关的概念。

    如果你是一个熟手,那我猜你问的是路由实现中的参数绑定相关的。
    我猜测,/v2ex 是路由名称,后面是参数绑定的。

    具体映射是在路由中处理,常见做法是正则表达式方案。

    /v2ex/(?<name>[^/]+)/(?<age>[0-9]+) 类似的做法。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1192 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:32 · PVG 02:32 · LAX 10:32 · JFK 13:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.