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

推薦內容橫式

本月熱門文章

日本旅行 去東京可以在哪邊買羽球相關用品? WEMBLEY/WINDSOR/梭家/Victoria/Alpen TOKYO

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

PM到底在做什麼 ? Project Manager, Product Manager 以及 Program Manager的差別

ComfyUI搭配各個Stable Diffusion模型版本的介紹、檔案名稱及相應的目錄結構。

蔣經國時代 1979年 美麗島事件 回顧

Netflix 勁爆女子監獄 Orange is the New Black /OINTB 成立了 Poussey Washington Fund 這個基金將會幫助更生人及移民人權問題 !!

快速上手的ComfyUI與Stable Diffusion生成圖片的cheat sheet

許多深藍人士懷念的兩蔣時代

日本女子搖滾樂團=Hölderlins的吉他手 高橋聖子 Shoko Takahashi 可能要單飛啦 讓搖滾,性感和舞蹈音樂可以很好地融合在一起

川普第二次擔任美國總統

這個網誌中的熱門文章

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