使用buildURL

时间:2017-02-16 22:01:05

标签: coldfusion routing fw1

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

1 个答案:

答案 0 :(得分:2)

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

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

根据肖恩科菲尔德的说法,核心问题是(现在):

  

有趣的想法,但我认为你会发现,一般来说,routes =&gt;   URL实际上是多对一映射,因此您无法可靠地进行   从URL(动作/参数)向后返回到唯一路线。我已经说过了   与人相处的几次,到目前为止还没有人能成功   提出一个适用于所有情况的映射。