什麼是REST——適合初學者的一種簡單解釋,第一部分:介紹

  原文地址: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

  1. 客戶端——客戶端就是使用API的人或者軟件。它能夠是一個開發者,好比說你,就能夠在你本身寫的程序中使用Twitter的API來從Twitter上讀取和寫入數據,或是建立一個新的帳戶等等。你的程序會調用Twitter的API。客戶端也能夠是web瀏覽器。當你訪問Twitter網站時,你的瀏覽器就是一個客戶端, 它會調用Twitter的API並使用返回的數據在屏幕上渲染信息。
  2. 資源——一個資源能夠是API提供的任何東西。在Instagram的API裏,資源但是是一個用戶,一張照片,一個標籤。每一個資源都有一個惟一的標識符。標識符能夠是一個名字或是一個數字。

  如今咱們回到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是,服務器所要作的取決於兩個你爲服務器提供的東西:

  1. 你須要的資源的標識符。這是資源的URL,也就端點。實際上,URL就是Uniform Resource Locator(統一資源定位符)的意思。
  2. 你想讓服務器在資源上所作的操做,以HTTP方法的形式,也叫動詞的形式。一般的HTTP方法有 GET,POST,PUT,DELETE。

  例如:使用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約束。

相關文章
相關標籤/搜索