本節(jié)介紹sun的RESTful Webservice的實現(xiàn)框架jersey,以及RESTful Webservice的理論知識。做為該系列的第一篇,本節(jié)會介紹后續(xù)的內(nèi)容。
什么是RESTful Web Services?
RESTful web services是表象狀態(tài)傳輸?shù)膚eb服務(wù)。REST的基礎(chǔ)是適用http創(chuàng)建一個簡單的web服務(wù)體系架構(gòu)。它為http數(shù)據(jù)傳輸提供了統(tǒng)一的接口。rest有五個關(guān)鍵性原則:
- 所有資源都有唯一的URI:所有的數(shù)據(jù)都在唯一的URI標識。
- 將所有的事物鏈接在一起:由于是URI,在任何的可能的情況下,適用鏈接指向被標識的事物。
- 適用標準方法:同一個資源適用不同的verb可以獲得不同的結(jié)果,在接下來的例子中可以得到驗證。這里的verb除了常用的GET和POST,還有PUT,DELETE。每一個動詞剛好對應(yīng)著數(shù)據(jù)庫的基本操作:GET對應(yīng)獲取數(shù)據(jù),就是查詢;POST對應(yīng)的更新數(shù)據(jù)UPDATE;PUT對應(yīng)著insert;DELETE就對應(yīng)這數(shù)據(jù)庫刪除。這樣的定義不僅能更語義化動詞,更重要的是他定義的一種標準,有了這個標準,可以跨應(yīng)用,跨域,跨系統(tǒng)的調(diào)用。
- 資源的多重表述:資源的獲取會隨著請求的head而不同。
- 無狀態(tài)通信:REST要求狀態(tài)要么被放入資源狀態(tài)中,要么保存在客戶端上。換句話說,服務(wù)端不能保持除了單詞請求之外的,任何與其通信的客戶端的通信狀態(tài)。這樣做的理由一是可伸縮性,他可以使服務(wù)端的變化對客戶端是不可見的。
jersey介紹
jersey是sun的RESTful web service實現(xiàn)。他使用jdk5的新特征anotation。其參考站點是https://jersey.dev.java.net/其他的參考資料:
rest介紹:http://www.infoq.com/cn/articles/rest-introduction
下面幾個家伙就是jersey的開發(fā)者
■ Earthly Powers, by Paul Sandoz, at http://blogs.sun.com/sandoz/category/REST.
■ MarcHadley's Blog, at http://weblogs.java.net/blog/mhadley/
■ Japod's Blog, by Jakub Podlesak, at http://blogs.sun.com/japod/category/REST.
本系列索引:
使用eclipse創(chuàng)建restful webservice 工程。