放翁(文初)的一畝三分地

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            210 隨筆 :: 1 文章 :: 320 評(píng)論 :: 0 Trackbacks

               今天收到InfoQ的推薦郵件,看了標(biāo)題就很感興趣,花了一些時(shí)間一看,果然是很不錯(cuò)的一個(gè)案例分析,同時(shí)也讓自己學(xué)到了不少。大致羅列一下看后的一些文章重點(diǎn)內(nèi)容。案例地址:http://www.infoq.com/cn/articles/webber-rest-workflow

              1.通過REST服務(wù)請(qǐng)求完成狀態(tài)遷移,同時(shí)合理利用OPTIONS來查看資源操作權(quán)限。

              2.合理利用Http Heads來返回資源URI,以及通過ErrorCode來確定操作結(jié)果,并且作后處理。

              3.通過返回內(nèi)容指定后續(xù)流程資源定位以及操作來實(shí)現(xiàn)流程化。

              4.通過Put報(bào)頭的兩種版本比較標(biāo)示來防止并發(fā)修改。(其實(shí)也可以優(yōu)化來做查詢緩存的工作)

              5.使用Atom協(xié)議來發(fā)布和管理資源(Atom是最適合REST風(fēng)格服務(wù)的數(shù)據(jù)源格式定義)

              6.URI模版的使用建議,慎用,如果確實(shí)能夠有把握抽象資源定位。

              7.Auth可以通過輕量級(jí)Http Head中的Authentication或者WS-*的方式來實(shí)現(xiàn)。(也可以通過https實(shí)現(xiàn))

              總的來說,其實(shí)整個(gè)案例分析下來以后,可以發(fā)現(xiàn)如果要使得服務(wù)流程化,那么前提就是數(shù)據(jù)交互格式統(tǒng)一(XML,Atom),然后利用Http協(xié)議作為服務(wù)協(xié)議而非承載協(xié)議,利用已有的操作約定,報(bào)文頭部標(biāo)示和返回的錯(cuò)誤碼來完成資源狀態(tài)遷移的工作,同時(shí)通過在返回內(nèi)容中嵌入流程化內(nèi)容,使得整個(gè)流程可以貫穿。(這里還是簡(jiǎn)單的流程串聯(lián),其實(shí)如果在流程規(guī)則協(xié)議中增加復(fù)雜的邏輯定義,則可以實(shí)現(xiàn)更為強(qiáng)大的Web workflow)。

              但對(duì)于Open API或者類似的REST流程化業(yè)務(wù)來說,安全其實(shí)還是最大的挑戰(zhàn),特別是在對(duì)資源的訪問控制權(quán)限上。當(dāng)然可以類似于WS-Security提出一套較為安全成熟的方案,但是性能和使用簡(jiǎn)易性則會(huì)大打折扣,也失去了REST本身的優(yōu)勢(shì)。

          posted on 2008-12-10 11:32 岑文初 閱讀(2173) 評(píng)論(2)  編輯  收藏

          評(píng)論

          # re: 星巴克REST案例分析讀后感 2008-12-11 13:52 Always BaNg.
          REST這么火,有成功的案例么?  回復(fù)  更多評(píng)論
            

          # re: 星巴克REST案例分析讀后感 2008-12-11 14:05 岑文初
          Google的Gdata,豆瓣的Open API,Amazon的S3等等都是REST的,當(dāng)然并沒有說REST一定是好的,技術(shù)沒有所謂的優(yōu)劣,只有用的人是否在合適的場(chǎng)景充分的利用了它的優(yōu)勢(shì)特點(diǎn)。  回復(fù)  更多評(píng)論
            


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 大英县| 长沙市| 岳阳市| 天祝| 库车县| 蒙山县| 丰县| 玛沁县| 翁牛特旗| 银川市| 辽阳县| 鄂托克旗| 海门市| 广平县| 鞍山市| 东城区| 兴仁县| 宜良县| 竹溪县| 阜阳市| 石楼县| 贵州省| 宿州市| 娱乐| 罗山县| 阿鲁科尔沁旗| 新密市| 宁河县| 平度市| 泸定县| 陈巴尔虎旗| 华池县| 汝阳县| 施甸县| 陵水| 霍林郭勒市| 北海市| 新丰县| 融水| 阿瓦提县| 宝清县|