ColdFusion是否支持在URI中间使用动态令牌的REST API URI?

时间:2016-04-21 19:19:38

标签: rest coldfusion taffy

我一直在使用ColdFusion 11的REST API支持,我想知道是否可以让它支持带有动态令牌的URI 的URI而不是仅在最后。也就是说,它非常容易支持如下的URI:

/rest/users/12345

12345是动态的(在这种情况下,用户是userID)。但我还没有找到一种方法(没有大量的URI黑客攻击)来支持以下URI:

/rest/users/12345/emailAddresses

那么,是否可以在ColdFusion(11或2016)中执行此操作?如果没有,Taffy是否支持(我没有看到它在哪里,但我可能错了)?

TIA

1 个答案:

答案 0 :(得分:1)

已经有一段时间了,我想提供答案,以防其他人有同样的问题......

ColdFusion在为REST端点定义CFC时,允许您在restpath属性中为<cfcomponent><cffunction>标记指定通配符/变量名称。然后,您可以为这些变量中的每一个定义<cfargument>个标记,以便您可以在函数中访问它们。例如:

<cfcomponent rest="true" restpath="/users/{userId}/pets" ... >
    <cffunction name="getPets" access="remote" httpMethod="GET">
        <cfargument name="userId" type="numeric" required="true" restargsource="Path" />

        <!--- Called with a path like /users/123/pets/ --->
        <!--- do stuff using the arguments.userId (123) variables --->
    </cffunction>

    <cffunction name="getPet" access="remote" httpMethod="GET" restpath="{petId}">
        <cfargument name="userId" type="numeric" required="true" restargsource="Path" />
        <cfargument name="petId" type="numeric" required="true" restargsource="Path" />

        <!--- Called with a path like /users/123/pets/456/ --->
        <!--- do stuff using the arguments.userId (123) and/or arguments.petId (456) variables --->
    </cffunction>
</cfcomponent>

这里的键是使用restpath属性,将变量定义为花括号中的变量名,然后将这些变量定义为函数的参数,并将restargsource属性设置为“Path”。

我希望这会有所帮助。