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

2021-12-20 11:30:05 +08:00
hackingwu  hackingwu

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

1209 次点击
所在节点   程序员  程序员
3 条回复
timethinker
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
leonme
2021-12-20 12:44:54 +08:00
不知道要表达什么?重新组织下语言吧
InDom
InDom
2021-12-20 12:52:56 +08:00
如果你是一个后端,新接手了一个项目,然后提出这个问题:
那我猜你问的是路由相关的概念。

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

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

/v2ex/(?<name>[^/]+)/(?<age>[0-9]+) 类似的做法。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/823277

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX