Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Coldfusion Coldbox路由动态路径变量数_Coldfusion_Coldbox - Fatal编程技术网

Coldfusion Coldbox路由动态路径变量数

Coldfusion Coldbox路由动态路径变量数,coldfusion,coldbox,Coldfusion,Coldbox,我正在开发一个coldbox应用程序,我想在其中创建一个路由,该路由接受“n”个路径变量作为一个变量。这就是我的意思 http://localhost/api/variable1/variable2/variable3/... 我希望能够获取/api之后的所有内容,作为一个路径变量,在该路径变量上可以拆分/并获取值,或者能够迭代/api之后的所有变量 有没有办法设置一条路线来完成这项工作 with(pattern="/api", handler="api") .addRoute(pat

我正在开发一个coldbox应用程序,我想在其中创建一个路由,该路由接受“n”个路径变量作为一个变量。这就是我的意思

http://localhost/api/variable1/variable2/variable3/...
我希望能够获取
/api
之后的所有内容,作为一个路径变量,在该路径变量上可以拆分
/
并获取值,或者能够迭代
/api
之后的所有变量

有没有办法设置一条路线来完成这项工作

with(pattern="/api", handler="api")
    .addRoute(pattern="/:variables", action="index")
.endWith();

任何想法都将不胜感激。提前感谢。

您可能知道,默认的路由范例是这样做名称-值对:

http://localhost/api/name1/value1/name2/value2/name3/value3
无需为此创建自定义路由,因为路由的匹配部分被分解为名称/值对并自动放置在rc中之后的所有内容

现在,听起来你只想在你的路线中有价值。如果知道变量的最大数量,可以创建一个可选的、递增命名的变量路由

addRoute(pattern="/:var1?/:var2?/:var3?/:var4?/:var5?", action="index")
现在,如果你可能真的有无限数量的变量,没有办法做一个路线,将符合这一点。您可以做的是让您的路由匹配/api位,并编写一个onRequestCapture拦截器,该拦截器捕获URL并对其进行自定义解析。注意,您可能需要删除ColdBox将尝试放入rc中的名称/值对

我要加上一个注意事项——这项工作真正起作用的唯一方法是提前知道传入变量的顺序,如果你知道这一点,没有理由不能为它创建一个已知的路由。否则,您基本上是重新构建SES拦截器,这是一种称为“内部平台效应”的反模式


正如您可能知道的,默认路由范例是这样做名称-值对:

http://localhost/api/name1/value1/name2/value2/name3/value3
无需为此创建自定义路由,因为路由的匹配部分被分解为名称/值对并自动放置在rc中之后的所有内容

现在,听起来你只想在你的路线中有价值。如果知道变量的最大数量,可以创建一个可选的、递增命名的变量路由

addRoute(pattern="/:var1?/:var2?/:var3?/:var4?/:var5?", action="index")
现在,如果你可能真的有无限数量的变量,没有办法做一个路线,将符合这一点。您可以做的是让您的路由匹配/api位,并编写一个onRequestCapture拦截器,该拦截器捕获URL并对其进行自定义解析。注意,您可能需要删除ColdBox将尝试放入rc中的名称/值对

我要加上一个注意事项——这项工作真正起作用的唯一方法是提前知道传入变量的顺序,如果你知道这一点,没有理由不能为它创建一个已知的路由。否则,您基本上是重新构建SES拦截器,这是一种称为“内部平台效应”的反模式


如果我的回答足以回答您的问题,您能否将其标记为已接受?如果我的回答足以回答您的问题,您能否将其标记为已接受?