2

我试图了解如何使用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"}

我不喜欢/show/这个生成的 URL 中的路径信息。它不是我在浏览器(或通过 AJAX 等)中请求的 URL 的一部分。有没有办法在生成的 URL 中摆脱它?

4

1 回答 1

2

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

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

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

有趣的想法,但我想你会发现,一般来说,路由 => URLs 实际上是一个多对一的映射,所以你不能可靠地从 URLs(动作/参数)倒退到唯一的路由。我已经和人们谈过几次了,到目前为止,还没有人想出一个适用于所有情况的映射。

于 2017-02-17T01:50:28.777 回答