原文地址:https://medium.com/extend/what-is-rest-a-simple-explanation-for-beginners-part-1-introduction-b4a072f8740f web
這篇文章是解釋REST基本概念的兩篇文章中的第一篇。設計模式
閱讀以前,你須要:瀏覽器
對什麼是HTTP和API有必定了解。服務器
REST是一種用於API的架構風格,或是設計模式。
架構
誰發明的REST?學習
REST是由計算機科學家Roy Fielding定義的。他在他2000年的Phd論文中提出了REST原則。網站
在咱們開始鑽研什麼能使API變得RESTful(RESTful 就是具備REST風格的意思,相似beauty和beautiful)以及你須要遵循哪些約束和原則以前,讓咱們先來解釋兩個關鍵的術語:spa
如今咱們回到REST的討論。設計
一個RESTful的web應用以資源的形式來向外暴露信息。它也能使客戶端去操做這些資源,好比建立新的資源(如建立一個用戶)或是改變現有資源。(如編輯一個發佈)。rest
爲了讓你的API變得RESTful,你必須在編寫API時去遵循一些規則。REST規則能使你的API更易於使用,也更易於被發現,意思就是說使用你的API的開發者在學習如何使用時會更輕鬆。
REST即 REpresentational State Transfer(表述性狀態傳輸)。 注:representational是指具象的,寫實的,與abstract抽象的是反義詞。
它的意思是當一個RESTful API被調用時,服務器會向客戶端傳輸它請求資源的狀態的表述。
例如:當一名開發者調用了Instagram的API去獲取一個特定的用戶(資源),API會返回這名用戶的狀態,包括他的姓名,目前發表動態的數量,有多少粉絲等。
狀態的表述大多數是JSON格式的,也能夠是XML或是HTML格式的。
當你調用API是,服務器所要作的取決於兩個你爲服務器提供的東西:
例如:使用Twitter的RESTful API獲取一個特定的Twitter用戶,須要一個URL來識別那個用戶和一個HTTP方法GET。
另外一個例子,如:www.twitter.com/jk_rowling 這個URL裏有惟一的標識符指向Twitter上的J.K. Rowling用戶,是她的用戶名jk_rowling。Twitter使用用戶名做爲標識符,並且Twitter上的用戶名確實是惟一的,不可能存在着兩個用戶擁有相同的用戶名。
HTTP方法GET代表咱們要得到那個用戶的狀態。
第二部分咱們來學習6個REST約束。