我尝试使用FW/1
版本4构建REST-API的印象。我将其设置在我的Application.cfc
:
<cfset variables.framework.routes = [
{ "$GET/persons/:id/$" = "/persons/show/id/:id" }
]>
我的控制器方法
<cffunction name="show">
<cfargument name="rc" type="struct" required="true">
<cfset local.strURL = variables.fw.buildURL(
action = 'persons.show',
queryString = 'id=123'
)>
<cfset variables.fw.renderData().data( { strURL = local.strURL } ).type( "json" )>
</cffunction>
我致电/persons/123
并获取此输出:
{"URL":"/persons/show/id/123"}
我不喜欢此生成的URL中的/show/
Pathinfo。这不是我在浏览器(或通过Ajax等)中要求的URL的一部分。有没有办法在生成的URL中摆脱它?
这不是FW/1中的功能。这是在2012年考虑的,但被拒绝了。
请参阅:https://github.com/framework-one/fw1/issues/145
核心问题是(并且是)根据Sean Corfield:
有趣的想法,但我认为您通常会发现路由=> URL实际上是一个众多映射,因此您无法可靠地去 从URL(操作/参数)向后倒退到唯一路由。我说话了 与人在一起的几次,到目前为止 提出一个在所有情况下都可以使用的映射。