校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 在Ruby on Rails中使用Rails Active Resource的教程

在Ruby on Rails中使用Rails Active Resource的教程

熱門標簽:高德地圖標注客服 地圖標注賺錢項目注冊 白銀外呼paas系統 常德電銷平臺外呼系統軟件價格 徐州網絡外呼系統哪個好 電銷機器人廠商代理 湖州u友防封電銷卡 滴滴外呼系統 百度地圖標注自定義圖片

簡介

當今的應用程序不僅需要和基于瀏覽器的客戶端互操作,還需要和其他應用程序互操作。為實現互操作性,web 應用程序通常提供一個 web 服務 API。web 服務 API 通過一個網絡(比如 Internet)提供對應用程序 的遠程訪問。直到最近,web 服務 API 還使用重型、復雜的基于 SOAP 的 web 服務集成,這種 web 服務,不僅沒有什么優點,而且還需要很長時間才能實現。帶有基于 Representational State Transfer (REST) 服務的 Rails 框架有一種更簡單、更快捷的方法通過 Active Resource 來實現和使用 web 服務。

在 Rails 實現了 RESTful 以后,現在只需通過一個 Rails 動作就能提供一個特定資源的不同內容類型(或者表示)。這種方法有以下好處:

  •     一個資源的各種表示狀態。
  •     對不基于瀏覽器的 HTML 客戶端的附加支持在 Controller 視圖中得到了簡化。
  •     應用程序之間以及與新客戶端之間的互操作性。

在本文中,您將了解 REST、SOAP、Rails Active Resource,以及如何提高多個應用程序之間的互操作性。

Ruby on Rails

Ruby on Rails(也稱為 Rails 或 RoR)是一個用 Ruby 語言編寫的開源 web 應用程序框架。Ruby on Rails 旨在幫助開發人員更輕松快捷地開發和部署 web 應用程序,與其他語言和框架相比,Rails 框架進行了幾個假設。其目的是使用敏捷開發的方法,實現快速開發。

Rails 框架合并了以下幾個包:

  •     Active Record:一個對象關系映射層,用于數據庫相關訪問和功能;
  •     Action Pack:一個控制器和視圖功能管理器;
  •     Action Mailer:一個電子郵件處理器;
  •     Active Support
  •     Active Resource:提供 web 服務(即 Action Web 服務)。

Web 服務

Web 服務是使用開放協議通信的應用程序組件,它們可以被其他應用程序使用。web 服務是簡單 APIs ,可以使用 HTML 進行訪問,并在承載請求服務的遠程系統上執行。web 服務是不同平臺上、以不同語言編寫、不同系統上的各種應用程序的關鍵集成點。

REST 不是一個協議;它是利用 World Wide Web 的技術和協議的大型聯網軟件的一種架構風格。REST 描述如何定義和處理分布式數據對象(或資源),強調簡單的信息交換和可伸縮性。REST 架構描述該該架構上應用的 6 個約束。

另一方面,SOAP 是一個協議規范,用于在計算機網絡中交換 web 服務的實現中的結構化信息。它依賴 XML 作為其消息格式,通常依賴其他應用程序層協議(RPC 和 HTTP)進行消息協商和傳輸。SOAP 可以形成 web 服務協議堆棧的基礎層,提供用于在其上構建 web 服務的基礎消息傳遞框架。
REST 與 SOAP

下表展示了 REST 和 SOAP 之間的一些區別。

REST 依賴一個單一的應用程序協議(HTTP)、幾個 URI、以及幾種通過 XML 標準化的數據格式。它采用成熟的 HTTP 方法(比如 GET 和 POST)來指揮應用程序。REST 開發人員使用 URI 來創建一個公共基礎,以便應用程序使用 HTTP 和 XML 來共享數據,而不是為應用程序創建一種機器可讀的標準方法來發現和使用遠程系統上的應用程序組件(這是 SOAP 用于 web 服務的方法)。REST 開發人員使用 XML 文檔而不是應用程序方法調用來告訴分布式程序如何相互使用數據。

REST 支持者指出,使用 SOAP 協議直接訪問遠程程序的功能必定會遇到 DCOM 和 Common Object Request Broker Architecture 等之前分布式計算架構所遇到的互操作性問題。

Active Resource

在對 web 應用程序在服務器和客戶機應用程序之間的通信采用 RESTful 方法之前,SOAP 和其他 XML-RPC 形式被用于通過一個 API 進行通信。Rails 2 引入的 Active Resource 替代了 Action Web Service。Active Resource 完全理解 RESTful 路由和 XML 表示。它是一個類,用于將 RESTful 資源映射為 Rails 應用程序中的模型。Active Resource 提供一些工具來快速、輕松地使用遵守 Rails RESTful URI 結構和協議約定的基于 REST 的 web 服務。Active Resource 將來自任何合格服務的響應映射到富 Ruby 對象。Active Resource 還提供輕松執行基本的 CRUD 功能需要的全部生命周期方法。

CRUD 操作分別對應 HTTP 方法 POST、GET、PUT 和 DELETE。而且,Active Resource 對這些 HTTP 方法中的每個方法都有一個方法。它們接收與 CRUD 相同的參數,但返回收到的 XML 的一個哈希表。Active Resource 對象本質上是 REST web 服務器的前端。它通過向服務器回調 HTTP 調用并將 XML 結果解析回一個 Ruby 對象中來獲取并修改它的數據。

清單 1 展示了一個最小 Active Resource 示例。假設有一個圖書館應用程序,每個類別作為一個不同的客戶端,且 Indian History 是其中一個類別。
清單 1. Active Resource 示例

class IndianHistory  ActiveResource::Base
self.site = “http://indian-history.com”
end

ActiveResource 擁有與 Active Record 相同的方法。在上面的代碼樣例中,類 IndianHistory 正繼承自 ActiveResource Base。在第二行中,self.site 持有包含 IndianHistory 圖書的 URI 的站點值。在本例中,這個 URI 是 http://indian-history.com(假設這個 URI 是帶有必要模型和控制器動作的另一個 Rails 應用程序)。

現在,這個類被映射到站點值定位的 RESTful 資源,您現在可以操作 IndianHistory 類的資源。要獲取 Indian History 下的所有圖書列表,您將調用它的 find 方法,它類似于 Active Record find 方法。

>> books = IndianHistory.find (:all)

這個 Active Resource 模塊類似于 Active Record 模塊;它們擁有相同的風格。

假設您正在尋找標題為 “Akbar” 的圖書,可以使用以下代碼:

>> books = IndianHistory.find(:all, :params => { :title => “Akbar”}}

與 Active Record find 方法中的常規 :conditions 子句不同,本示例使用了 :params,且 URL 是 GET http://indian-history.com/indian_histories.xml?title=Akbar。

Active Resource 不僅限于檢索數據。您可以使用所有 CRUD 操作。在腳本/控制臺中,您可以使用:

>> IndianHistory.create (:title => “Jhansi Stories”, :amount => 233.00, :available => 0)

上述代碼行將使用提供的數據向 create 動作中存在清單 2 中的代碼的控制器創建一個 HTTP POST。
清單 2. Create

class IndianHistoryController  ActiveResource::Base
def create
@book = IndianHistory.new (params [:indian_history])
respond_to do |format|
if @book.save
flash[:notice] = “New title added successfully” 
format.html { redirect_to(@book) }
format.xml { render :xml => @book, :status => :created}
else
format.html { render :action => “new” }
format.xml { render :xml => @book.errors, :status => :unprocessable_entity}
end
end
end

end

如果圖書記錄成功保存,將返回新創建的、狀態碼為 HTTP 201 的記錄,并將使用新創建的記錄重定向視圖。

同樣,您也可以更新和刪除記錄,主要您擁有執行管理的權限和訪問權。

對于 Update 操作,在腳本/控制臺中使用:
清單 3. Update

>> book= IndianHistory.find (2)
>> book.available = 1
>> book.save 
>> book = IndianHistory.find (2)
>> book.available # => 1

您更新了圖書的可用性并保存記錄。ActiveResource 和 ActiveRecord 之間有一個細微差別:ActiveResource 中沒有方法 save 和 update。

最后,下面的語句將從數據庫移除記錄。

>> IndianHistory.delete(2)

除了上面介紹的基本操作外,Active Resource 還允許通過設置一個 HTTP 頭部來 支持 HTTP 基本身份驗證。假如用戶名和密碼被設置且在身份驗證失敗時拋出錯誤,則客戶機和服務器連接的安全檢查就能通過每個連接上的 Active Resource 身份驗證來完成。基本的身份驗證也可以輕松實現。

結束語

在本文中,您了解了 web 服務、REST、SOAP 和 Rails Active Resource。一個簡單的示例向您展示了 CRUD 操作。

Ruby on Rails Active Resource 包以一種 RESTful 方式提供多個 web 應用程序之間的輕松通信。除了 CRUD 操作外,它還允許您創建自定義動作。

您可能感興趣的文章:
  • 舉例理解Ruby on Rails的頁面緩存機制
  • 在Ruby on Rails中優化ActiveRecord的方法
  • 舉例講解Ruby中迭代器Iterator的用法

標簽:張家界 梧州 永州 公主嶺 普洱 三沙 遼寧 荊門

巨人網絡通訊聲明:本文標題《在Ruby on Rails中使用Rails Active Resource的教程》,本文關鍵詞  在,Ruby,Rails,中,使用,Active,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《在Ruby on Rails中使用Rails Active Resource的教程》相關的同類信息!
  • 本頁收集關于在Ruby on Rails中使用Rails Active Resource的教程的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    久久99精品久久久久久国产越南 | 国产性色一区二区| 欧美日韩一级大片网址| 色婷婷综合在线| 日本精品一区二区三区四区的功能| 成人毛片视频在线观看| 国产精品资源在线看| 国产一区在线观看视频| 国产综合久久久久久久久久久久| 另类人妖一区二区av| 免费精品视频在线| 韩国三级在线一区| 成人激情视频网站| 99国产精品国产精品久久| 色哟哟一区二区| 欧美日韩国产影片| 日韩视频免费观看高清在线视频| 日韩一卡二卡三卡四卡| 久久这里只有精品6| 国产夜色精品一区二区av| 中文字幕在线视频一区| 亚洲免费三区一区二区| 日韩在线a电影| 国产一区在线观看麻豆| 91麻豆.com| 欧美一级高清大全免费观看| 国产午夜精品理论片a级大结局 | 亚洲欧美日本在线| 午夜精品久久久久影视| 精品一二三四区| gogo大胆日本视频一区| 欧美精品久久天天躁| 久久久久久久一区| 亚洲国产精品自拍| 国产很黄免费观看久久| 欧洲精品一区二区三区在线观看| 日韩欧美一区二区不卡| 亚洲女与黑人做爰| 看电影不卡的网站| 欧美怡红院视频| 欧美经典三级视频一区二区三区| 亚洲综合偷拍欧美一区色| 激情文学综合插| 色综合久久久久久久久| 2023国产精华国产精品| 亚洲一卡二卡三卡四卡 | 最新中文字幕一区二区三区| 日韩成人精品在线观看| av爱爱亚洲一区| 久久嫩草精品久久久精品| 一级精品视频在线观看宜春院| 狠狠狠色丁香婷婷综合久久五月| 在线观看视频91| 国产欧美日韩另类视频免费观看| 视频一区中文字幕| 91丨porny丨户外露出| 久久精品一区二区三区av| 香蕉影视欧美成人| 91香蕉视频污在线| 欧美激情一二三区| 国产精品羞羞答答xxdd| 欧美r级在线观看| 日韩精品一级中文字幕精品视频免费观看| 国产91富婆露脸刺激对白| 欧美成人精品1314www| 五月天一区二区| 色婷婷av一区| 一区精品在线播放| 成人午夜精品一区二区三区| 久久精品免视看| 国产在线播放一区三区四| 91精品国产欧美一区二区成人| 一区二区高清免费观看影视大全| 97久久精品人人澡人人爽| 国产精品色哟哟| 懂色中文一区二区在线播放| 国产欧美日韩激情| 成人午夜在线播放| 亚洲欧洲成人精品av97| 91亚洲午夜精品久久久久久| 亚洲欧美一区二区三区孕妇| 色老汉一区二区三区| 一区二区三区四区乱视频| 91色视频在线| 亚洲一二三区不卡| 在线成人小视频| 六月丁香综合在线视频| 亚洲精品一区二区三区影院| 国内久久婷婷综合| 亚洲国产精品高清| 91久久精品一区二区三| 亚洲高清一区二区三区| 日韩限制级电影在线观看| 精品综合免费视频观看| 国产午夜一区二区三区| 日本高清免费不卡视频| 日韩av一区二区三区| 久久精品亚洲国产奇米99| 成人高清伦理免费影院在线观看| 亚洲人成网站色在线观看| 在线播放中文字幕一区| 国产一区二区在线观看视频| 欧美国产日产图区| 欧美色区777第一页| 麻豆久久一区二区| 国产精品美女久久久久久久久 | 国产精品久久国产精麻豆99网站| 一本到不卡精品视频在线观看| 亚洲成年人网站在线观看| 精品国产1区2区3区| youjizz久久| 久久精品国产77777蜜臀| 中文字幕一区日韩精品欧美| 欧美曰成人黄网| 成人影视亚洲图片在线| 亚洲成av人在线观看| 国产亚洲欧美在线| 制服.丝袜.亚洲.中文.综合 | 亚洲另类在线一区| 久久一区二区三区国产精品| 欧美自拍丝袜亚洲| 成人激情黄色小说| 久久99国内精品| 亚洲精品国产精华液| 国产色爱av资源综合区| 日韩一区二区三区四区| 色吧成人激情小说| av电影在线观看完整版一区二区| 毛片av一区二区| 一区二区三区中文字幕电影| 国产精品色一区二区三区| 精品美女被调教视频大全网站| 欧美亚洲日本国产| 91亚洲精华国产精华精华液| 美女精品一区二区| 精品免费视频一区二区| 一本一本大道香蕉久在线精品 | 国产毛片精品视频| 亚洲一区二区欧美激情| 日韩欧美国产成人一区二区| 欧美揉bbbbb揉bbbbb| 懂色av中文一区二区三区| 亚洲宅男天堂在线观看无病毒| 精品人伦一区二区色婷婷| 一本一道综合狠狠老| 黄页网站大全一区二区| 午夜精品免费在线观看| 亚洲欧洲另类国产综合| 3d动漫精品啪啪| 欧美一区欧美二区| 色综合一区二区| 成人精品一区二区三区四区| 美国毛片一区二区| 美国精品在线观看| 色噜噜夜夜夜综合网| 91麻豆精品久久久久蜜臀| 亚洲成av人影院| 国产精品国产三级国产普通话蜜臀| 欧美亚洲禁片免费| 欧美日韩一区二区三区四区五区| 北条麻妃国产九九精品视频| 国产高清久久久| 狠狠v欧美v日韩v亚洲ⅴ| 国产成人精品一区二区三区四区| 久久不见久久见中文字幕免费| 亚洲成人动漫精品| 亚洲亚洲精品在线观看| 亚洲第一主播视频| 亚洲在线中文字幕| 亚洲国产aⅴ天堂久久| 亚洲大片免费看| 另类小说综合欧美亚洲| 久久91精品国产91久久小草| 美女网站在线免费欧美精品| 蜜桃视频一区二区| 亚洲美女电影在线| 日韩综合在线视频| 免费观看在线综合色| 国产一区不卡视频| 精品一区中文字幕| 97精品国产97久久久久久久久久久久| 成人avav在线| 在线观看亚洲精品| 91福利社在线观看| 精品日韩一区二区| 久久精品无码一区二区三区| 国产精品三级在线观看| 欧美激情综合网| 肉肉av福利一精品导航| 日本强好片久久久久久aaa| 青青国产91久久久久久| 国内精品在线播放| 欧美午夜精品一区二区蜜桃| 91精品国产91久久综合桃花 | 一区二区三区四区不卡视频| 丝袜美腿成人在线| 国产成人亚洲综合a∨猫咪| www.在线成人| www亚洲一区| 亚洲男帅同性gay1069|