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=175132php

 

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

相關文章
相關標籤/搜索