我试图了解如何使用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中摆脱这个?
答案 0 :(得分:2)
这不是FW / 1中的功能。这在2012年被考虑过,但被拒绝了。
请参阅:https://github.com/framework-one/fw1/issues/145
根据肖恩科菲尔德的说法,核心问题是(现在):
有趣的想法,但我认为你会发现,一般来说,routes =&gt; URL实际上是多对一映射,因此您无法可靠地进行 从URL(动作/参数)向后返回到唯一路线。我已经说过了 与人相处的几次,到目前为止还没有人能成功 提出一个适用于所有情况的映射。