使用 buildURL 的路径信息太多

too much pathinfo using buildURL

我试图了解如何使用 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/ 路径信息。它不是我在浏览器中请求的 URL 的一部分(或通过 AJAX 等)。有没有办法在生成的 URL?

中摆脱它

这不是 FW/1 中的功能。这个在2012年考虑过,但是被否决了

参见:https://github.com/framework-one/fw1/issues/145

根据 Sean Corfield 的说法,核心问题过去是(现在也是):

Interesting idea but I think you'll find that, in general, routes => URLs is actually a many-to-one mapping so you can't reliably go backwards from URLs (actions / params) to a unique route. I've talked that over a few times with people and so far no one has managed to come up with a mapping that works in all cases.