2009-12-01 39 views
3

我正在開發替代我們公司的web服務棧。需要更好的語言/框架來完成REST風格的web服務

當前堆棧是使用SOAP開發的,並且有一些REST端點被手動入侵。這是一個維護噩夢。

只要符合目標,我就可以使用任何語言,技術和框架。

的要求是:

  • 方便服務了RESTful服務
  • 採用了MVC模式
  • 支持注入中間層附近做電話認證(OAuth的和基本認證)(優選以聲明方式)
  • 可以方便地執行JSON,JSONP和Plain ol返回數據的XML(簡單XML)類型的序列化
  • 最好具有內置的緩存控制並內置於ET ags支持
  • 最好使用靜態類型語言,但這並不重要,如果我必須寫的代碼量大大減少
  • 如果擁有一個支持微線程/ epoll類型HTTP處理的框架,我可以輕鬆地支持HTTP長輪詢,但這不是必需的

到目前爲止,我已經看了:

  • .NET(C#)
    • ASP.NET MVC(簡單的MVC框架,必須手動添加缺少件適合我的要求)
    • 單軌(簡單的MVC框架,少支持)
    • WCF(遺憾的是它需要大量的覆蓋,迫使它的就範很好地工作消費上不使用WCF本身)
  • 的Python
    • 塔我的清單(頂級客戶的權利,但它缺少方便XML序列化)
    • Django的(更traditio比REST框架最終的Web框架)
  • 斯卡拉(仍然是新的,但大的初創公司正在使用它)
  • Ruby on Rails的(不縮放我喜歡的方式)

任何其他的想法或想法?

+0

不是Java的粉絲我是否接受它? – amischiefr 2009-12-01 19:00:04

+0

Java並未脫離桌面。我可以在幾乎任何事情上發展,但我也想確保我不會選擇一些我的同事在某一天離開時不願意維護的東西。 – 2009-12-01 19:01:34

+0

你的技能是什麼,你的同事的技能是什麼?我認爲這應該是您選擇的主要考慮因素。 – amischiefr 2009-12-01 19:09:44

回答

4

我剛開始Django and Piston工作 - 我認爲它的一個偉大的組合

+0

有趣!這可能有用! – 2009-12-01 19:06:30

+0

在活塞上閱讀。看起來我正在尋找的是我第一次看到django時找不到。 (用Django Googling寧靜的服務不返回活塞:-)) – 2009-12-01 19:11:12

+0

哦。內置於活塞OAuth樣板中。我們有一個winrar! – 2009-12-01 19:13:40

1

Ruby on Rails的(不縮放我喜歡的方式)

一般來說,Ruby on Rails的可以很好地擴展(目前而言,過去的已經過去)。

您的系統需要什麼樣的可擴展性,Rails不提供?

除了靜態打字之外,在您的其他需求方面,Rails似乎是行業領導者。

+0

根據Twitter的使用經驗,我預先判斷它,當它們達到臨界質量時。網絡服務將會瘋狂瘋狂。我也沒有使用傳統的數據存儲(沒有SQL的bigtable克隆),所以activerecord概念也沒有幫助我。 – 2009-12-01 19:04:58

4

如果你正在考慮的.Net,有OpenRasta(http://trac.caffeine-it.com/openrasta/wiki/Doc),一個非常好的REST框架,簡單而功能強大,其中REST是不是像WCF一樣後來改裝。

+1

我也支持這個框架 - 對於REST服務來說,這是一個偉大的,輕量級但強大的作爲一等公民的服務。 – Dokie 2009-12-16 13:36:38

1

還有其他的Ruby框架,如Sinatra。它非常輕巧靈活 - 絕對值得一看。

該示例應用:

require 'rubygems' 
require 'sinatra' 
get '/hi' do 
    "Hello World!" 
end 

還有對西納特拉膠水框架稱爲「和尚」,這使得建立更復雜的項目佈局要容易得多。

0

我會嘗試Jello framework。它提供了一個乾淨且簡單的JSON格式,並提供了遵循OData規範的非常強大和全面的RESTful實現。

使用Jello REST,您可以完全支持所有CRUD(創建,檢索,更新,刪除)操作,並且可以構造複雜的查詢來操作數據檢索結構。

此外,Jello的主要特點之一是其內聯授權模型。通過Jello,您可以爲任何解析(命名空間,實體,字段,操作)的數據元素分配不同的訪問級別,並指定誰有權通過REST API訪問數據。