Java REST框架一覽(轉)


目前宣稱支持REST的Java框架包括以下這些: 
Restlet(http://www.restlet.org/) 
Cetia4(https://cetia4.dev.java.net/) 
Apache Axis2(http://http://ws.apache.org/axis2/) 
sqlREST(http://sqlrest.sourceforge.net/) 
REST-art(http://rest-art.sourceforge.net/) 

以下對這些框架進行了較為全面的分析。 

Restlet,最新版本1.0.1 
特點:完全拋棄了Servlet API,作為替代,自己實現了一套API。能夠支持復雜的REST架構設計。 
缺點: 
1. 雖然也可以運行於Web容器中,但是難以利用Servlet和JSP等資源。因為需要另外學習一套API和概念,學習成本比較高。 
2. 完全不支持服務器端的HTTP Session,強制完全基於無狀態服務器模型來做開發。對於基於瀏覽器的應用來說,開發難度較高。 
3. 自身沒有包括與Spring的集成,可以使用第三方代碼與Spring集成,集成難度較大。 
4. 文檔不是很豐富,大多比較簡短,很多時候需要自己去讀代碼,或者到其wiki上去查找。 
5. 沒有內建的國際化支持。 
優點: 
1. 有內建的HTTP認證機制,不需要另外開發安全機制。 
2. 靈活性較高,支持更多的REST概念,支持透明的內容協商,適合於開發更加強大的REST組件(不限於服務器端應用)。 
3. 零配置文件,全部配置通過代碼來完成。 

相關資源: 
功能列表:http://www.restlet.org/about/features 
簡介:http://www.restlet.org/about/introduction 
教程:http://www.restlet.org/documentation/1.0/tutorial 
FAQ:http://www.restlet.org/about/faq 

Cetia4,最新版本1.0 
特點:基於Servlet API開發,可以運行於所有的Web容器中。 
優點: 
1. 可以充分利用Servlet API和JSP等資源,需要額外學習的概念較少,學習成本較低。 
2. 對於傳統的Web應用,可以使用服務器端HTTP Session;對於Web服務類應用,不使用HTTP Session,基於無狀態服務器模型做開發。 
3. 自身包括了對於Web MVC的支持,熟悉Web MVC框架的開發者很容易理解。還內建了參數映射、參數驗證等等傳統Web MVC框架所支持的功能。 
4. 內建了自己特有的導航對象棧的概念,對於支持傳統的Web應用的開發(基於瀏覽器的導航)非常有幫助。 
5. 提供了JSP標簽庫,對於傳統的基於HTML表單的Web開發非常有幫助。 
6. 支持與SiteMesh相配合,由SiteMesh來支持頁面布局的重用。 
7. 內建有與Spring的集成,集成起來非常容易。 
8. 配置文件完全基於標准的web.xml,不需要額外的配置文件。大量使用默認配置,一般情況下足以滿足常見的需求。 
9. 擁有很好的文檔。 
10. 有內建的國際化支持。 
缺點: 
1. 沒有內建的HTTP認證機制,需要自行開發安全機制。 
2. 對於內容協商的支持比較弱,僅支持HTML和XML格式的表現。需要加以擴展才能支持其他格式的表現。 

相關資源: 
教程:https://cetia4.dev.java.net/files/documents/5545/38989/cetia4_tutorial.pdf 

Axis2,最新版本1.2 
特點:同時支持SOAP和REST風格的Web Service。 
缺點: 
1. 僅僅支持GET與POST方法。 
2. 僅僅是以REST風格暴露出Web服務,數據格式仍然是包含SOAP封裝的XML,不能使用更加有效的格式。 
3. 只支持同步的調用方式。 
4. 僅僅提供了以SOAP方式暴露Web服務的最小化的支持,不支持全面的REST架構設計。 

相關資源: 
簡介:http://ws.apache.org/axis2/1_2/rest-ws.html 

sqlREST,最新版本0.3.1 
特點: 
1. 為任何可以通過JDBC訪問的數據庫提供Web服務訪問接口,自動將REST風格的HTTP請求轉換為相應的數據庫SQL語句,並將數據庫中的記錄編碼為XML格式傳給客戶端。是REST風格的HTTP請求到數據庫中的數據的直接映射。 
2. 基於Servlet API開發。 
缺點: 
1. 因為是REST風格的HTTP請求到SQL語句的直接映射,因此強制使用以SQL和關系數據庫為中心的數據建模設計方法,不支持面向對象的設計。靈活性很低,難以實現較為復雜的業務邏輯。 
2. 因為資源的定義僅限於數據庫的表,難以實現更高層次的抽象,必然會導致非常細粒度的API。應用的性能和可伸縮性都難以保證。 

相關資源: 
教程:http://sqlrest.sourceforge.net/5-minutes-guide.htm 

REST-art,最新版本0.2 
特點:一個旨在替換復雜的SOAP框架的REST框架,用來作為替代SOAP方便地發布Web服務的工具。不是基於Servlet API開發。 
缺點: 
1. 目前尚處於剛剛起步的階段,功能非常少。 
2. 不是基於Servlet API,帶來了額外的學習成本。 

相關資源: 
教程:http://sourceforge.net/docman/index.php?group_id=175132

 

引用地址:http://www.iteye.com/topic/85928


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM