2012-05-23 21 views

回答

7

Restful webservices是一個標準的概念,所有的實現最終都遵守這些規範。目前已有的框架如Taffy,Powernap以及像ColdBox 3,Mach II這樣的框架可以幫助在ColdFusion中創建平靜的服務。而且,我們在提供給用戶的完整性和授權方面做得非常出色。差異在於它們的啓用方式,它們如何讓您創建服務。一些遵循約定其他配置與他們自己的DSL等,並在某些方面他們提供的功能。

ColdFusion 10擁有原生的寧靜web服務支持。它所帶來的表是:

  1. 您可以使用您自己的組件的理解,並將它們擴展爲
  2. 基於標準的JAX-RS的支持/應用
    • 噸可用於擴展寧靜的WebServices (測試/自動化)....
    • 沒有執行長度相關,廣泛提供/接受
  3. 更好的性能
  4. 更好地支持和文檔
  5. 減配置
  6. 應用WADL implmented(WSDL等)
  7. 完整的JSON/XML的支持和易於擴展

正如你將看到大多數的這些都是有它的好處「本地」可用於語言,而不是比較功能,這就是我們實現它的原因。國際海事組織根本沒有任何比較。我希望看到所有的框架都能利用本地可用的功能並在其基礎上進行構建。

拇指規則應該在CF10前使用適合您的口味的任何一種,使用本機可用的usecase/post CF10版本或使用相同的任何框架。

謹慎的提示:每個框架作者都會在你跳躍之前對自己的判斷偏向於自己。

p.s.我在ColdFusion10實現REST支持:)

+2

這應該在wiki中 - 很好的答案! –

+0

什麼是'Application WADL'?謝謝 – Henry

+0

@MarkAKruger謝謝! –

0

至於其餘的CFC將通常只是爲你的模型的包裝,如果你的模型已經與像冷箱在CF框架創建,你可能會使用框架實施的更好一個ReSTful webservice。

如果您從頭開始,CF10(和Railo 4)中新增的功能將爲您提供基礎架構,而無需應用程序框架的開銷。

0

優秀資源:https://github.com/atuttle/CF-REST-Comparison/tree/master/CF10

要求/怪癖

  • 所有遠程方法必須返回類型= 「...」 指定(其中...是將要返回的類型)。
  • 不要忘記爲URI標記參數的<cfargument/>標記restArgSource。 restArgSource的默認值是body, ,如果你試圖從URI獲取一個值,這將不起作用。
  • 不支持特定於應用程序的映射。改爲使用服務器映射或完全限定的cfc路徑。
  • 每當刷新服務時,我總是遵循以下工作流程:從日誌文件屏幕中刪除「exception.log」刷新REST 服務檢查「exception.log」是否回來。 (如果是這樣,請閱讀 並解決問題。)