RESTful service是一種架構(gòu)模式,近幾年比較流行了,它的輕量級(jí)web服務(wù),發(fā)揮HTTP協(xié)議的原生的GET,PUT,POST,DELETE。 REST模式的Web服務(wù)與復(fù)雜的SOAP和xml-RPC對(duì)比來講明顯的更加簡(jiǎn)潔,越來越多的web服務(wù)開始采用REST風(fēng)格設(shè)計(jì)和實(shí)現(xiàn)。例如,Amazon.com提供接近REST風(fēng)格的Web服務(wù)進(jìn)行圖書查找;雅虎提供的Web服務(wù)也是REST風(fēng)格的。REST 并非始終是正確的選擇。 它作為一種設(shè)計(jì) Web 服務(wù)的方法而變得流行,這種方法對(duì)專有中間件(例如某個(gè)應(yīng)用程序服務(wù)器)的依賴比基于 SOAP 和 WSDL 的方法更少。 在某種意義上,通過強(qiáng)調(diào)URI和HTTP等早期 Internet 標(biāo)準(zhǔn),REST 是對(duì)大型應(yīng)用程序服務(wù)器時(shí)代之前的 Web 方式的回歸。 如下圖示例:

使用REST的關(guān)鍵是如何抽象資源,抽象得越精確,對(duì)REST的應(yīng)用就越好。
REST服務(wù)關(guān)鍵原則:
1. 給一切物體一個(gè)ID
2.連接物體在一起
3.使用標(biāo)準(zhǔn)方法
4.資源多重表述
5.無狀態(tài)通信
假設(shè)我們有這樣的類OrderManagementService, CustomerManagementService:

實(shí)現(xiàn)REST將是基于HTTP應(yīng)用協(xié)議,像下圖這樣:

上圖實(shí)現(xiàn)了對(duì)訂單,客戶之間的相關(guān)CRUD操作,我們看到使用對(duì)應(yīng)的HTTP協(xié)議。
REST能實(shí)現(xiàn)是一種解耦方法,讓我們實(shí)現(xiàn)這些架構(gòu)特性:性能,伸縮性,簡(jiǎn)化,可修改性,擴(kuò)展性
在J2EE中我們可以使用JAX-RS, Dropwizard…
dotnet平臺(tái)可以使用Web API, WCF,servicestack,nancyfx
那么OData呢? OData是基于AtomPub協(xié)議的REST另一種表現(xiàn)形式,用于應(yīng)用程序與數(shù)據(jù)的交互。 最近微軟又發(fā)布了OData lib 6.6.
由于篇幅有限,今天先介紹到這兒。
您可能感興趣的文章:
C#實(shí)現(xiàn)一個(gè)簡(jiǎn)單的REST service
使用Fiddler測(cè)試基于WCF的REST Service
使用WCF web API測(cè)試基于REST的WCF Service
如有想了解更多軟件開發(fā)資訊,請(qǐng)關(guān)注我的微信訂閱號(hào):

作者:Petter Liu
出處:http://m.survivalescaperooms.com/wintersun/
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。
該文章也同時(shí)發(fā)布在我的獨(dú)立博客中-Petter Liu Blog。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注