淺談REST 軟體架構風格(Part.I) | rest restful
REST起源與簡述REST(全名RepresentationalStateTransfer)為2000年 Dr.RoyFielding提出的一篇博士論文(ArchitecturalStylesandtheDesignofNetwork-basedSoftwareArchitectures[1]),這篇文章可以說是Web領域中的聖經。而在我們常接觸的HTTP1.1(RFC2616[2])規格書中,也可以看到Dr.RoyFielding的名字出現。我必須強調REST並不是一種標準或協定,簡單地說REST是一種軟體架構風格,適合應用在複雜的網路服務環境中,然而HTTP也是符合REST的架構的一項實作。其實REST的設計概念已經運用在許多大型的網路系統中,近幾年RESTfulWebService更...
REST 起源與簡述REST (全名 Representational State Transfer) 為 2000 年 Dr. Roy Fielding 提出的一篇博士論文 (Architectural Styles andthe Design of Network-based Software Architectures [1]),這篇文章可以說是 Web 領域中的聖經。而在我們常接觸的 HTTP 1.1 (RFC 2616 [2]) 規格書中,也可以看到 Dr. Roy Fielding 的名字出現。我必須強調 REST 並不是一種標準或協定,簡單地說 REST 是一種軟體架構風格 ,適合應用在複雜的網路服務環境中,然而 HTTP 也是符合 REST 的架構的一項實作。其實 REST 的設計概念已經運用在許多大型的網路系統中,近幾年 RESTful Web Service 更是引起開發者的討論與重視,而 WSDL 2.0 也宣布支援 REST Web Service 的描述方式。目前有很多著名的 Web Service 都是遵循 REST 的理念進行設計,像是 Amazon AWS, eBay, Facebook, Yahoo Web Service, Google Web Service 等等。相較於傳統的 XML-RPC 與 SOAP 協定,REST 在設計上更加簡單且直覺,而且 REST 在 Web Service 上的實作可以算是比較輕量級的設計模式。雖然 REST 距今已經超過十年的歷史,但許多人對 REST 卻是一知半解,這也是我寫這篇文章的原由(文中只是個人淺見,歡迎指教)。右圖為 REST Triangle,說明了 REST 在實作上使用的 Nouns, Verbs 與 Content types。[1][2][3]
再談 REST許多人第一次聽到 REST 這個名詞都會想到 Ruby on Rails, 當然我們不可否認 RoR 對 RESTful 的貢獻與推廣佔了很大的戲份。一般來說我們都稱這樣的設計架構為 REST,然而朝著這樣的理念所設計出來的系統可稱為 RESTful,表示系統在設計上遵循著 REST 的理念與原則。而 RESTful 這樣的軟體架構在過去幾年的驗證下,確實發現 REST 非常符合現今的網路架...