【问题标题】:What can CF10 RESTful API do that Coldbox RESTful API cannot do? And vise versa?CF10 RESTful API 能做什么,而 Coldbox RESTful API 不能做什么?反之亦然?
【发布时间】:2014-06-10 09:23:34
【问题描述】:

刚开始研究一些 MVC JS 框架/库,他们中的大多数都期望一个 RESTful API 端点,这让我开始思考......我可以使用 CF10 做什么,而使用 CF9 + ColdBox RESTful 支持无法完成,反之亦然?

谢谢。

【问题讨论】:

    标签: rest coldfusion coldbox coldfusion-10


    【解决方案1】:

    Restful Web 服务是一个标准概念,所有实现最终都遵循这些规范。已经有像TaffyPowernap 这样的框架和像ColdBox 3、Mach II 这样的框架可以帮助在ColdFusion 中创建restful 服务。我他们在为用户提供的完整性和授权方面做得非常好。不同之处在于它们启用它的方式,它们如何让您创建服务。有些遵循惯例,有些则使用自己的 DSL 等进行配置,并且在某种程度上他们提供的功能。

    ColdFusion 10 具有原生的 restful web 服务支持。它带来的是:

    1. 您可以使用自己对组件的理解并将它们扩展为 RESTful Web 服务
    2. 基于标准 JAX-RS
      • 大量支持/应用程序可用于扩展(测试/自动化)......
      • 没有实施偏见,广泛可用/可接受
    3. 更好的性能
    4. 更好的支持和文档
    5. 更少的配置
    6. 应用 WADL 已实现(类似 WSDL)
    7. 完整的 JSON/XML 支持且易于扩展

    正如您将看到的那样,其中大多数是让语言“本机”可用的好处,而不是对功能进行比较,这就是我们实现它的原因。 IMO根本没有任何比较。我希望看到所有框架都利用本机可用功能并在其之上构建。

    Thumb 规则应该是在 CF10 之前使用任何适合您的口味,用例/CF10 发布后使用本机可用的或任何使用相同的框架。

    注意事项:每个框架作者都会偏向于自己的框架,因此请在采取行动之前进行判断。

    附言我已经在 ColdFusion10 中实现了 Rest 支持 :)

    【讨论】:

    • 这应该在维基上 - 很好的答案!
    • 什么是Application WADL?谢谢
    • @Henry WADL 是 Web Application Description Language 的缩写。您可以使用 Application.wadl 查看任何应用程序中的所有资源。此外,在任何端点上获取 OPTIONS 将返回所有可用的操作/方法。非常类似于使用 WSDL 的服务发现
    【解决方案2】:

    因为 rest cfc 通常只是你的模型的一个包装器,如果你的模型已经使用像 Coldbox 这样的 cf 框架创建,你可能会更好地使用 ReSTful webservice 的框架实现。

    如果您从头开始,CF10(和 Railo 4)中新添加的功能将为您提供基础架构,而无需应用程序框架的开销。

    【讨论】:

      【解决方案3】:

      优秀资源: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”是否返回。 (如果有,请阅读 并解决问题。)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-23
        • 2020-07-09
        • 2018-05-30
        • 2016-11-20
        • 2010-11-24
        • 2016-05-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多