【发布时间】:2014-06-10 09:23:34
【问题描述】:
刚开始研究一些 MVC JS 框架/库,他们中的大多数都期望一个 RESTful API 端点,这让我开始思考......我可以使用 CF10 做什么,而使用 CF9 + ColdBox RESTful 支持无法完成,反之亦然?
谢谢。
【问题讨论】:
标签: rest coldfusion coldbox coldfusion-10
刚开始研究一些 MVC JS 框架/库,他们中的大多数都期望一个 RESTful API 端点,这让我开始思考......我可以使用 CF10 做什么,而使用 CF9 + ColdBox RESTful 支持无法完成,反之亦然?
谢谢。
【问题讨论】:
标签: rest coldfusion coldbox coldfusion-10
Restful Web 服务是一个标准概念,所有实现最终都遵循这些规范。已经有像Taffy、Powernap 这样的框架和像ColdBox 3、Mach II 这样的框架可以帮助在ColdFusion 中创建restful 服务。我他们在为用户提供的完整性和授权方面做得非常好。不同之处在于它们启用它的方式,它们如何让您创建服务。有些遵循惯例,有些则使用自己的 DSL 等进行配置,并且在某种程度上他们提供的功能。
ColdFusion 10 具有原生的 restful web 服务支持。它带来的是:
正如您将看到的那样,其中大多数是让语言“本机”可用的好处,而不是对功能进行比较,这就是我们实现它的原因。 IMO根本没有任何比较。我希望看到所有框架都利用本机可用功能并在其之上构建。
Thumb 规则应该是在 CF10 之前使用任何适合您的口味,用例/CF10 发布后使用本机可用的或任何使用相同的框架。
注意事项:每个框架作者都会偏向于自己的框架,因此请在采取行动之前进行判断。
附言我已经在 ColdFusion10 中实现了 Rest 支持 :)
【讨论】:
Application WADL?谢谢
因为 rest cfc 通常只是你的模型的一个包装器,如果你的模型已经使用像 Coldbox 这样的 cf 框架创建,你可能会更好地使用 ReSTful webservice 的框架实现。
如果您从头开始,CF10(和 Railo 4)中新添加的功能将为您提供基础架构,而无需应用程序框架的开销。
【讨论】:
优秀资源:https://github.com/atuttle/CF-REST-Comparison/tree/master/CF10
要求/怪癖
- 所有远程方法都必须指定 returnType="..." (其中 ... 是要返回的类型)。
- 不要忘记用于 URI 令牌参数的
<cfargument/>标记的 restArgSource。 restArgSource 的默认值为 body, 如果您试图从 URI 中获取值,这将不起作用。- 不支持特定于应用程序的映射。请改用 server-mappings 或完全限定的 cfc 路径。
- 每当刷新服务时,我始终遵循以下工作流程:从日志文件屏幕中删除“exception.log”刷新 REST services 检查“exception.log”是否返回。 (如果有,请阅读 并解决问题。)
【讨论】: