RESTful API 相關資訊收集





RESTful API 是指實踐 REST Representational State Transfer 精神的 API 設計風格,其核心精神在於借用 HTTP 協定做為基礎,讓 API 規格簡單一致,大致有以下特色 :
  • 透過 URI 指定要存取或操作的資源
  • 可使用 QueryString,但只應拿來傳遞額外過濾條件或參數,不應包含識別資源的鍵值
  • 使用 HTTP 方法 POST、GET、PUT、DELETE 對應到建立、讀取、更新、刪除等動作。
  • 也有人主張 PUT 是 Relace (Create 或 Update),另外增加 PATCH 用於部分更新( Partial Update )
  • 透過 Accept Header 指明可接收的內容格式,例如:XML 或是 JSON
  • 伺服器透過 HTTP 狀態碼回傳執行結果,例如:200 成功、401 存取被拒、404 找不到資源、500 伺服器錯誤
而 REST 概念的提出者 Roy Fielding 是 HTTP 規範的主要作者及 Apache HTTP Server 專案的發起人之一,這也是讓 RESTful API 風格備受推崇的原因之一。

RESTful API 設計準則與實務經驗

RESTful 是一種「軟體架構風格」

RESTful-Triangle (REST 金三角) 概念:

 RESTful-Triangle 右邊這個三角形描述了以下三個重要的概念: 

  1. Nouns 名詞:用來定義你的網址 URL,記住,每一個網路上的資源應該僅有一個唯一的識別位置,就像你的房子有獨一無二的「住址」一樣。 
  2. Verbs 動詞:描述了對 Nouns 名詞 (資源 URL) 的操作動作,在 HTTP 1.1 的實作當然就是 HTTP Method。比如用 GET 取得文章內容、用 DELETE 刪除文章等等行為。 
  3. Content Types 資源呈現方式:比如取得某一個 URL 文章的 HTML 格式、或者 XML 格式,同樣的 URL 資源可以有不同型態的表現方式。


RESTful 的優點如下所列:
  • 瀏覽器即可以作為 client 端
  • 可以更高效地利用 cache 來達到更快的回應速度
  • 界面與資料分離
  • 節省伺服器的計算資源
  • 可重用! web/android/ios 都可以用, 無痛轉換!

RESTful 的要求:
  • client - server 架構
  • 分層系統
  • 利用快取機制增加效能
  • server-side: 在 GET 資源時,若該資源並沒有被變更,就可以利用 cache 機制減少 query,並且加快回應速度
  • client-side: 透過 client 端 cache 記錄 cache 版本,
  • 若向 server 要求資源時發現 server 最新版與 cache 相同,
  • 則 client 端直接取用本地資源即可,不需要再做一次查詢
  • 省機器運算及流量 = 省錢
  • 通訊協定具有無狀態性

留言

Google Search

推薦內容橫式

本月熱門文章

鋼鐵韓粉站出來 讓韓國瑜每天唱歌喝酒好不好

黑金? 不得不提前總統馬英九大姊馬以南 吳敦義 林益世

香港事件回顧 2020/08/10 前眾志成員周庭及壹傳媒創辦人黎智英被捕 今日累計10人被捕

捐款支持義大利靈醫會 一起來幫助他們 就像當初教士來台灣協助我們一樣 !!

從台灣省長宋楚瑜到台北市長柯文哲,可以說 宋楚瑜 2.0 就是柯文哲

「港版國安法」,法律將會放在《基本法》附件三在港實施,而非就《基本法》23條立法

除了兒福聯盟 還有其他團體是努力守護孩子們 芥菜種會愛心育幼院 及忠義育幼院 都需要大家幫忙

兒福聯盟到底多有錢?收捐款為什麼不做事情而是定存?王育敏不解釋嗎?

北京故宮首訪,一窺清宮秘史 大玉兒 & 甄嬛

這個網誌中的熱門文章

Android應用開發豆知識:利用 adb 安裝 apk 到裝置上

Android 中文輸入法 官方版 ! Gboard - Google 鍵盤 開始支援注音輸入啦

Google Play 推薦Android app 誠徵App排行榜

北京故宮首訪,一窺清宮秘史 大玉兒 & 甄嬛

[家教][社會觀察] 建中教我的事 沒上建中被父母親折磨? 在建中到底是如何 ...

[FAANG面試] Amazon/AWS 領導力準則 14 Amazon Leadership Principles

Acer ICONIA Smart S300 更新後越來越好 Acer也有出手機?!

[品質控制] 什麼是Sanity test ? 軟體測試常見名詞整理 包含不同部門的測試人員負責範圍

新鮮人找工作:職場名詞解釋 AE FAE Pre-sales Post-sales