2016-12-29 252 views
2

什麼是Rest API,它爲什麼被使用,我該如何去創建一個並進一步瞭解它?所有的函數應該是GET/POST/DELETE/PUT形式?Rest API究竟是什麼

+1

找到你讀過這個:http://stackoverflow.com/questions/4663927/what-is-rest-slightly-confused –

+0

這也是不錯的http:// stackoverflow.com/questions/671118/what-exactly-is-restful-programming – tinkerbeast

回答

0

簡而言之,REST API定義了一組函數,開發人員可以通過HTTP協議執行請求和接收響應,例如GET和POST。 REST API應該指定它可以提供什麼以及如何使用它,查詢參數,響應格式,請求限制,公共使用/ API鍵,方法(GET/POST/PUT/DELETE),語言支持,回調使用等細節。 HTTPS支持和資源表示應該是自描述的...

0

REST是一種高度可擴展和可緩存的架構,非常適合設計API。基本想法behing REST -

  1. URL和標頭應該唯一標識資源,以便它可以被緩存。

  2. REST API應該是無狀態的,即api調用的結果應該不會因前面的api調用而有所不同。保持apis狀態限制緩存,因此不被視爲RESTful。

  3. 使用合適的http動詞,即GET用於讀取和冪等性請求,POST用於寫入請求,PUT用於寫入和冪等性請求,DELETE用於刪除資源。

  4. 返回符合REST標準的適當狀態代碼,以便在不同代理層上使用和通用可達性。

  5. HATEOAS即超媒體作爲應用程序狀態的發動機其中指出大多數URLS的不應該被硬編碼的,而不是服務器端應在其響應中提供的URL引導客戶。這個想法與我們在瀏覽器上使用網站的方式非常相似。

+0

更正:1)只有URI用於標識資源。資源可以是任何東西,例如我或'幸福'。當通過HTTP使用URI和請求標頭時,選擇「資源的表示」 - 一個數字字節流,比如我的肖像的JPEG圖像。 3&4)如果使用HTTP作爲您的應用程序協議,這些對於REST不是必需的,除了滿足通用接口約束之外。其他接口可以選擇與您描述的不同。例如,HTML只使用GET和POST,但接口是共享的,因此可以滿足REST。 –

+0

我有點同意你的第一個觀點,那就是標題'應該'主要用於不同的表示。 – hspandher

+0

我有點贊同你的第一個觀點,那就是標題'應該'主要用於不同的表示。但很多時候頭被用於版本控制。同樣,很多人傾向於使用url進行版本控制。 你仍然不能考慮這些api的「不穩定」。其次就正確的動詞而言,建議使用正確的動詞。除了大多數使用Restful網址的網頁(如Ruby on Rails)之外,由於它們不是無狀態(會話),因此不是真正的「RESTful」。最後,REST僅在HTTP協議的環境中有效。你不能使用REST和SOAP。 – hspandher

0

REST是當今開發中非常流行的體系結構,它是兩種截然不同的組件之間的通信方法,通常用於開發Web服務。此外,REST不會佔用過多的帶寬,使其更適合通過網絡使用。這使得REST更適合於SOAP,因爲與SOAP不同,您不必創建服務器和客戶端。在SOAP的情況下,您必須單獨創建服務器程序來提供數據和客戶端程序來請求數據。

詳細知識庫可以在http://srijan.net/blog/rest-api-and-its-utility-real-web-applications