亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

應(yīng)用Rails進(jìn)行REST 開發(fā)(一)

系統(tǒng) 1755 0

前言
??? ??? Http協(xié)議除了 get 和 post ,還可以做更多的事情,一直以來,很多的開發(fā)
人員都忘了這一點(diǎn)。

??? ??? 但是,如果你知道瀏覽器其實(shí)只支持 get 和 post, 那么你就不會感到驚奇
了。

??? ??? get 和 post 是http請求從客戶端傳到服務(wù)器端的兩個方法。除了這兩個,
http協(xié)議還知道 put和delete 方法,這兩個方法告訴服務(wù)器創(chuàng)建或者刪除一個
WEB的資源。

??? ??? 這個教程的目的,就是擴(kuò)展開發(fā)人員的視線,去了解http協(xié)議的 put 和
delete 方法。我們常說的 REST 這個術(shù)語,精華就是 http 協(xié)議中 get, post,
put, delete 四個方法。Rails 從1.2版本開始,就支持 REST 這個技術(shù)了。
這個教程一開始會簡短的介紹REST的背景和概念,接著介紹為什么要開發(fā)
REST風(fēng)格的Rails應(yīng)用。

??? ??? 使用 scaffolding,這是可以幫助我們產(chǎn)生 controller 和 model 細(xì)節(jié)的工
具,對我們的進(jìn)行REST應(yīng)用的開發(fā)很有幫助。REST的應(yīng)用中作用非常重大的路由
技術(shù),將會在接下來的章節(jié)介紹。“嵌套的資源”這個章節(jié),會介紹一下REST的
高級應(yīng)用,告訴大家資源如何以 父 - 子(繼承關(guān)系)的關(guān)系組合在一起,同時不
違反的REST 風(fēng)格的路由設(shè)計(jì)。教程的后面,還會介紹一些REST的內(nèi)容,AJAX,
REST風(fēng)格的應(yīng)用的測試方法,還有“ActiveResource”-- REST的客戶端部分。

??? ??? 在我們開始之前,再啰嗦最后一句:要讀這個教程,最少你要懂一點(diǎn)Rails開
發(fā)的基本知識,否則的話,先去學(xué)習(xí)學(xué)習(xí)吧:)
什么是REST?

??? ??? REST這個術(shù)語,是Roy Fielding 在Ph.D.論文中提出來的,它的全稱是
“Representational State Transfer.”

??? ??? REST描述了這么一個架構(gòu):利用標(biāo)準(zhǔn)的http 協(xié)議中的 get, post, put,
delete 來請求和操作網(wǎng)絡(luò)上的資源。

??? ??? 在REST中,資源的意思就是一個 基于URL實(shí)體,客戶端可以通過 http協(xié)
議來和它進(jìn)行交互。這個資源可以用各種形式來展示給客戶端,如 HTML,XML,
RSS,主要依賴于客戶端的調(diào)用方式。并不像以往的Rails開發(fā)那樣,用REST方
式,一個 url 不是指定一個 model 或者 action, 一個 url 僅僅是資源的本身而
已。

??? ??? 在圖1.1中,三個資源的URL的開頭都是相同的,通過后面的不同的數(shù)字
來保證這三個是不同的資源。

??? ??? 注意:URL并沒有表明要對這三個資源進(jìn)行什么操作。

??? ??? Rails 應(yīng)用中,一個資源是由 controller 和 model 組成的。那么從
技術(shù)的角度來看,圖 1.1中的3個資源"project",就是針對3個請求,而表現(xiàn)出
來的 Project model(也就是ActiveRecord類了)的3個實(shí)例形式。

為什么使用REST

??? ??? REST所帶給我們的,是Rails 的理論上的提升,下面的一些特性,將會使
我們清晰地了解這一點(diǎn)。

??? ??? a) 簡明的Url. REST 風(fēng)格的URL是為了定位一個資源,而并不是調(diào)用一
個action. 在REST中,URL經(jīng)常以這種方式出現(xiàn):先是controller的名稱,然后
是資源的id。請求的操作隱藏在URL 里,并且通過 http 協(xié)議來表示(get, post,
put, delete 四個動作)。

??? ??? b) 傳回給客戶端不同格式的內(nèi)容。我們通過一種方式來編寫 controller,
其中的action應(yīng)該都可以返回給客戶端不同的格式的結(jié)果。對于同一個 action,
即可以返回給客戶端 html, 也可以返回給xml,也可以返回給 RSS,這依賴于客戶
端想要什么。REST應(yīng)用就好像變得能處理客戶端好多的命令。

??? ??? c) 更少的代碼。因?yàn)橐粋€action 可以返回客戶端的各種需要格式,這就
減少了(DRY don’t repeat yourself),這也就讓 controller 里的代碼減少了。

??? ??? d) 面向 CRUD 的controller. 所謂CRUD 就是Create,Retrieve,Update,Delete.
controller 和 model 融合到一起,每個controller都會響應(yīng)某個
model的操作。

??? ??? e) 讓系統(tǒng)設(shè)計(jì)更簡單。REST風(fēng)格的開發(fā)方式,會使系統(tǒng)結(jié)構(gòu)更加清晰,而
且容易維護(hù)。為什么使用REST?

新玩意
??? ??? 如果你覺得 REST 讓你之前所有的開發(fā)經(jīng)驗(yàn)變得毫無作用,別擔(dān)心,那是
不可能的~ 因?yàn)镽EST仍然是基于 MVC 風(fēng)格的。從技術(shù)角度來看,REST中的“新
玩意”可以歸納為以下幾點(diǎn):

??? ??? a) 在 controller 中的 respond_to 的用法。

??? ??? b) 對于 link 和 form 的新的 helper 方法。

??? ??? c) 在 controller redirect 中的 url 方法。

??? ??? d) 在 routes.rb 文件中,新的路由定義方法。

好了,今天就到這了,明天以實(shí)例說明。

?

應(yīng)用Rails進(jìn)行REST 開發(fā)(一)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 青青青精品免费视频 | 成人aaaa| 欧洲一级毛片免费 | 狠狠狠地在啪线香蕉 | 精品视频在线一区 | 人人做人人性 | 国产成年女一区二区三区 | 青青国产成人久久91网站站 | 亚洲欧美日韩伦中文 | 成年女人色毛片免费看 | 大学生一级黄色片 | 国产乱人伦精品一区二区 | 亚洲精品a | 国产在线精品一区免费香蕉 | 69久成人做爰视频 | 久久毛片免费 | 国产成人综合亚洲欧洲色就色 | 日日干天天插 | 在线欧美 | 国产成人精品久久亚洲高清不卡 | 狠狠狠狠狠狠干 | 亚洲国产精品区 | 国产免费变态视频网址网站 | 久久久久久色 | 亚洲午夜在线观看 | 亚洲精品一区二区三区在线播放 | 麻豆狠色伊人亚洲综合网站 | 热久久精品| 国产成人一区二区三区高清 | 一区二区三区不卡在线 | 奇米狠狠 | 亚洲国产高清一区二区三区 | 国产精品亚洲一区二区三区久久 | 青青青久在线视频免费观看 | 国产一区二区三区免费观看 | 日本亚洲欧洲高清有码在线播放 | 欧美老妇免费做爰视频 | 国产在线观看自拍 | 饥饿游戏在线 | 伊人久久中文字幕 | 亚洲成人精品视频 |