日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > Ruby > 正文

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

2020-10-29 19:40:34
字體:
來源:轉載
供稿:網友

簡介

當今的應用程序不僅需要和基于瀏覽器的客戶端互操作,還需要和其他應用程序互操作。為實現互操作性,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 之間的一些區別。

201542393455403.jpg (831×514)

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::Baseself.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::Basedef create@book = IndianHistory.new (params [:indian_history])respond_to do |format|if @book.saveflash[:notice] = “New title added successfully” format.html { redirect_to(@book) }format.xml { render :xml => @book, :status => :created}elseformat.html { render :action => “new” }format.xml { render :xml => @book.errors, :status => :unprocessable_entity}endendendend

如果圖書記錄成功保存,將返回新創建的、狀態碼為 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 操作外,它還允許您創建自定義動作。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产乱国产乱300精品| 日本a级黄色| 国产欧美日韩91| 欧美日韩中文字幕| 亚洲美女视频一区| 日韩精品在线免费播放| 国产亚洲二区| 国产一级粉嫩xxxx| 亚洲高清精品视频| 国产在线观看黄色| 日本黄色一区二区三区| 欧美日韩综合在线免费观看| 在线视频亚洲| 欧美国产91| 91精品国产综合久久久久久漫画| 中文字幕亚洲欧美| 日韩一级二级三级| 久草亚洲一区| 91一区二区| 国产成人精品网址| 日韩精品久久久| 欧美日韩999| 亚洲乱码在线观看| 在线看av的网址| 中文字幕亚洲一区在线观看| 国产美女主播视频一区| 日韩精品久久久| 999精品在线| 中文网丁香综合网| 欧美日韩国产综合网| 欧美日韩精品是欧美日韩精品| 欧美一级免费观看| 免费视频最近日韩| 天天综合天天做| 日韩欧美一二三区| 日韩精品高清不卡| www.中文字幕在线观看| 粉嫩粉嫩芽的虎白女18在线视频| 在线黄色国产电影| 亚洲娇小xxxx欧美娇小| 国产综合精品在线| 久久欧美中文字幕| h片精品在线观看| 一区二区不卡在线播放| 中文字幕在线中文字幕二区| 最近中文字幕日韩精品| 亚洲热在线观看| 精品久久久网| 亚州福利视频| 日韩视频中文字幕| 国产欧美日产一区| 亚洲一区中文字幕在线| 欧美日韩久久不卡| 亚洲高清视频在线| 日韩欧中文字幕| 高清中文字幕在线| 亚洲国产www| 欧美日韩乱国产| 国产三级第一页| 日韩wumaV| 国产成人综合av| 欧美日韩国产中字| 欧美日韩国产一区中文午夜| 国产欧美日韩综合| 伊人伊成久久人综合网小说| 国产91欧美| 一区二区三区视频网站| 国产精品视频福利一区二区| 中文字幕在线官网| 日韩视频国产视频| 91久久大香伊蕉在人线| 日本精品国语自产拍在线观看| 色综合影院在线| 欧美日韩国产一区在线| 91精品国产免费| 国产日韩精品在线看| 国产高清不卡av| av免费网站在线观看| 日韩视频在线一区二区三区| 在线欧美日韩国产| 欧美在线中文字幕| 久久精品最新免费国产成人| 韩国av一区二区| 人人做人人澡人人爽欧美| 91精品视频免费在线观看| 日韩欧美亚洲日产国| 中文字幕第一页在线| 日韩精品第一区| 色综合天天性综合| 亚洲图片小说综合| 亚洲欧美韩国综合色| 国产在线二区| 一区二区三区在线免费 | 中文字幕亚洲欧美| 国产日韩精品在线| 91久久久精品国产| 最近中文字幕在线中文高清版| 国产欧美中文在线| 91精品日本| 伊人网站在线| 91精品国产综合久久香蕉最新版 | 久久婷婷中文字幕| 日韩精品丝袜在线| 综合图区亚洲白拍在线| 欧美 日韩 国产 高清| 中文字幕在线高清| 国产在线视频不卡| 国产伦精品免费视频| 日韩欧美国产成人一区二区| av中文天堂在线| 国产福利久久久| 日韩中文字幕二区| 91精品国产手机| 亚洲永久免费视频| 日韩欧美色综合网站| 九一精品国产| 91精品国产调教在线观看| 日韩免费视频一区二区视频在线观看| 日韩欧美国产网站| 91精品国产欧美日韩| 中文字幕精品在线视频| 视频一区视频二区中文| 一区二区视频在线观看免费的| 日韩中文字幕在线视频播放| 欧美日韩国产片| 欧美一级欧美三级在线观看| 亚洲一区三区在线观看| 日韩中文字幕在线播放| 欧美日韩免费高清| 国产一区高清视频| 黄色片免费在线| 欧美三级一区二区三区| 国自产拍在线网站网址视频| 国产一卡2卡3卡免费网站| 蜜臀久久精品| 久久99久久久久| 91精品国产全国免费观看| 一区二区三区中文字幕在线观看| 久久久久久99精品| 国产欧美日韩精品在线观看| 亚洲一区在线观看网站| 日韩一二三四区| 欧美中文字幕精品| 亚洲成av人片一区二区密柚| 一区二区在线看| 国产不卡在线观看视频| 日韩免费视频一区| 国产一区二中文字幕在线看| 99国内精品| 午夜精品一区二区三区视频免费看| 日韩国产一区久久| 日本国产一区| 91精品在线视频观看| 日韩久久精品网| 亚洲视频在线观看三级| 国产三级视频网站| 日韩欧美国产1| 天天综合天天添夜夜添狠狠添| 最近免费中文字幕在线第一页| 黄色一区二区在线| 精品一性一色一乱农村| 国产成人精品综合久久久| 在线视频国产三级| 又黄又www的网站| 一区二区在线高清视频| 国产久卡久卡久卡久卡视频精品| 亚洲中文字幕一区| 中文字幕日韩精品在线| 黄色国产网站在线观看| 国产欧美日韩综合| 亚洲一区中文| 久草中文在线观看| 91精品国产入口| 色偷偷一区二区三区| 欧美中文字幕| 中文精品视频| 中文精品电影| 91久久精品午夜一区二区| 一区二区精品| 亚洲人成欧美中文字幕| 精品久久久久久综合日本欧美| 日韩精品福利视频| 国产精久久久久| 欧美 日韩 国产 在线| 欧美日韩中文字幕视频| 午夜福利一区二区三区| 欧美日韩在线观看成人| 亚洲欧洲国产视频| 中文字幕 欧美 日韩| 亚洲图片小说综合| 欧美sm一区| 91精品国产自产观看在线| 国产在线黄色| 欧美久久久网站| 日韩精品视频中文字幕| 日韩欧美中文字幕精品| 日韩精品a在线观看91| 亚洲一区在线观看视频| 91精品国产综合久久福利| 在线观看国产一级片| 国产h片在线观看| 欧美日韩精品久久久| 国产123在线| 精品国内自产拍在线视频| 国产一区成人| 日韩欧美99| 国产欧美日韩精品高清二区综合区| 国产91久久久久| 欧美日韩高清在线| 日本黄色一区二区三区| 日韩欧美在线不卡| 精品视频在线视频| 日韩精品视频在线看| 久久久精品欧美| 欧美中文字幕第一页| 日韩欧美综合在线| 日韩欧美国产网站| av免费不卡国产观看| 亚洲精品中文字幕乱码三区不卡| 91日韩欧美| 午夜成人鲁丝片午夜精品| 一区二区三区在线播放欧美| a√免费观看在线网址www| 亚洲va中文字幕| 日韩免费高清一区二区| 午夜伦欧美伦电影理论片| 欧美 日韩 综合| 亚洲成av人片在线| 中文字幕精品国产| 中文字幕在线视频久| 欧美人妻一区二区三区| 日韩精品手机在线观看| 午夜一区二区三区视频| 精品网站999www| 日韩.com| 最近中文字幕在线中文视频| 国产在线www| 男人的天堂网av| 国产在线观看精品| 日韩在线观看a| 久久韩国免费视频| 国产欧美日韩91| 日韩在线视频网| 欧美日韩在线精品一区二区三区激情综| 日韩在线视频免费观看| www.中文字幕在线| 中文 欧美 日韩| 国产一区高清视频| 久久香蕉一区| 欧美日韩高清| 国产综合成人久久大片91| 久久久精品国产免费观看同学| 中文天堂在线一区| 精品日韩欧美| 麻豆一区二区99久久久久| 精品播放一区二区| 日韩va亚洲va欧洲va国产| 国产午夜精品视频免费不卡69堂| 亚洲高清视频在线| 国内精品不卡| 日韩欧美色综合| 欧美人妻一区二区三区| 区日韩二区欧美三区| 日韩视频国产视频| 日韩精品福利视频| 中文官网资源新版中文第二页在线观看| 国产卡1卡2卡三卡在线| 欧美日韩夫妻久久| 激情国产在线| 精品欧美日韩| 一区精品在线播放| 国产欧美在线观看| 日韩欧美中文字幕公布| 久久婷婷中文字幕| 欧美一级搡bbbb搡bbbb| 日韩欧美在线综合网| 日本不卡一区在线| 成人禁用看黄a在线| 中文字幕在线视频精品| 一区二区中文视频| 不卡一区2区| 精品中文字幕在线播放| 欧美不卡一二三| 中文字幕五月天| 欧美中文字幕在线| 久久精品欧美日韩精品| 亚洲成a人片在线www| 午夜视频在线观看一区| 伊人www22综合色| av免费网站在线| 欧美日韩中文字幕在线观看| 91精品国产自产在线| 麻豆精品99| 欧美激情视频一区二区三区在线播放| 91久久精品午夜一区二区| 国产乱国产乱300精品| 日韩一级精品| 亚洲视频日韩| 欧美婷婷精品激情| 日韩wumaV| 91久久久精品| 中文字幕欧美亚洲| 日韩精品在线观看视频| 国产999精品在线观看| 日韩国产高清一区| av手机天堂| 中文在线日韩| 国产在线日韩欧美| 欧美日韩中文字幕一区| 欧美日韩国产一二| 中文字幕 亚洲一区| 国产福利久久| 欧美日韩视频免费看| 国产一区在线观看视频| 亚洲高清免费一级二级三级| 日韩美女中文字幕| 在线中文字幕网站| 欧美啪啪一区| 91精品国产高清久久久久久| 一区二区不卡视频在线观看| 69免费视频| 精品对白一区国产伦| 欧美日韩国产首页在线观看| 日韩一级中文字幕| 亚洲福利视频在线| av中文在线播放| 国产乱一区二区| 欧美日韩在线视频免费观看 | 在线中文字幕视频观看| 国产午夜精品久久| xxxxx性| 红桃视频国产一区| 欧美亚洲免费高清在线观看| 精品三级久久| 国产免费永久在线观看| 91精品国产乱码久久蜜臀| 亚洲三级欧美| 免费在线视频一区二区| 日韩欧美国产三级| 91蜜桃在线视频| 91精品国产高清91久久久久久| 日韩色在线观看| 国产黄色小视频| 久久香蕉一区| 日韩欧美三级视频| 日韩不卡一二区| 91精品国产综合久久久久久| 日韩国产欧美在线视频| 天天综合天天| 日韩欧美中文在线视频| 日韩在线中文视频| 日韩欧美999| 亚洲一区在线观看免费| 日韩久久精品成人| 国产黄色高清在线| 国产区日韩欧美| 51精品免费网站| 中文在线视频观看| 日韩中文欧美在线| 欧美日韩在线播放一区| 日韩精品在线免费观看| 九九九精品视频| 精品国产网站在线观看| 中文官网资源新版中文第二页在线观看| 亚洲国产www| 伊人网站在线| 精品视频www| 国产欧美日韩亚州综合| 欧美久久一二三四区| 91精品视频免费在线观看| 92久久精品| 亚洲成年人在线播放| 久久福利视频一区二区| 日韩美女视频一区二区在线观看| 亚洲福利在线观看| 国产在线欧美日韩| 亚洲三级av| 美日韩精品免费视频| 91精品国产91久久久久久青草| 一区二区在线视频播放| 国产乱码在线观看| 精品一区二区三区中文字幕在线| 国产丝袜欧美中文另类| 欧美日韩综合在线| 精品极品三级久久久久| 一区在线播放视频| 国产高清在线观看| 精品对白一区国产伦| 欧美亚洲天堂| 欧美日韩视频免费播放| 国产欧美久久久久久久久| 中文字幕亚洲第一| 欧美va亚洲va日韩∨a综合色| 内射国产内射夫妻免费频道| 欧美日韩在线综合| 精品国产免费观看一区| 欧美国产一级片| 欧美日韩精品欧美日韩精品一| 国产一级免费在线观看| 欧美三级日韩三级|