簡介
當(dāng)今的應(yīng)用程序不僅需要和基于瀏覽器的客戶端互操作,還需要和其他應(yīng)用程序互操作。為實(shí)現(xiàn)互操作性,web 應(yīng)用程序通常提供一個(gè) web 服務(wù) API。web 服務(wù) API 通過一個(gè)網(wǎng)絡(luò)(比如 Internet)提供對應(yīng)用程序 的遠(yuǎn)程訪問。直到最近,web 服務(wù) API 還使用重型、復(fù)雜的基于 SOAP 的 web 服務(wù)集成,這種 web 服務(wù),不僅沒有什么優(yōu)點(diǎn),而且還需要很長時(shí)間才能實(shí)現(xiàn)。帶有基于 Representational State Transfer (REST) 服務(wù)的 Rails 框架有一種更簡單、更快捷的方法通過 Active Resource 來實(shí)現(xiàn)和使用 web 服務(wù)。
在 Rails 實(shí)現(xiàn)了 RESTful 以后,現(xiàn)在只需通過一個(gè) Rails 動(dòng)作就能提供一個(gè)特定資源的不同內(nèi)容類型(或者表示)。這種方法有以下好處:
一個(gè)資源的各種表示狀態(tài)。 對不基于瀏覽器的 HTML 客戶端的附加支持在 Controller 視圖中得到了簡化。 應(yīng)用程序之間以及與新客戶端之間的互操作性。在本文中,您將了解 REST、SOAP、Rails Active Resource,以及如何提高多個(gè)應(yīng)用程序之間的互操作性。
Ruby on Rails
Ruby on Rails(也稱為 Rails 或 RoR)是一個(gè)用 Ruby 語言編寫的開源 web 應(yīng)用程序框架。Ruby on Rails 旨在幫助開發(fā)人員更輕松快捷地開發(fā)和部署 web 應(yīng)用程序,與其他語言和框架相比,Rails 框架進(jìn)行了幾個(gè)假設(shè)。其目的是使用敏捷開發(fā)的方法,實(shí)現(xiàn)快速開發(fā)。
Rails 框架合并了以下幾個(gè)包:
Active Record:一個(gè)對象關(guān)系映射層,用于數(shù)據(jù)庫相關(guān)訪問和功能; Action Pack:一個(gè)控制器和視圖功能管理器; Action Mailer:一個(gè)電子郵件處理器; Active Support Active Resource:提供 web 服務(wù)(即 Action Web 服務(wù))。Web 服務(wù)
Web 服務(wù)是使用開放協(xié)議通信的應(yīng)用程序組件,它們可以被其他應(yīng)用程序使用。web 服務(wù)是簡單 APIs ,可以使用 HTML 進(jìn)行訪問,并在承載請求服務(wù)的遠(yuǎn)程系統(tǒng)上執(zhí)行。web 服務(wù)是不同平臺上、以不同語言編寫、不同系統(tǒng)上的各種應(yīng)用程序的關(guān)鍵集成點(diǎn)。
REST 不是一個(gè)協(xié)議;它是利用 World Wide Web 的技術(shù)和協(xié)議的大型聯(lián)網(wǎng)軟件的一種架構(gòu)風(fēng)格。REST 描述如何定義和處理分布式數(shù)據(jù)對象(或資源),強(qiáng)調(diào)簡單的信息交換和可伸縮性。REST 架構(gòu)描述該該架構(gòu)上應(yīng)用的 6 個(gè)約束。
另一方面,SOAP 是一個(gè)協(xié)議規(guī)范,用于在計(jì)算機(jī)網(wǎng)絡(luò)中交換 web 服務(wù)的實(shí)現(xiàn)中的結(jié)構(gòu)化信息。它依賴 XML 作為其消息格式,通常依賴其他應(yīng)用程序?qū)訁f(xié)議(RPC 和 HTTP)進(jìn)行消息協(xié)商和傳輸。SOAP 可以形成 web 服務(wù)協(xié)議堆棧的基礎(chǔ)層,提供用于在其上構(gòu)建 web 服務(wù)的基礎(chǔ)消息傳遞框架。
REST 與 SOAP
下表展示了 REST 和 SOAP 之間的一些區(qū)別。
新聞熱點(diǎn)
疑難解答
圖片精選