1. 程式人生 > >RESTful API設計方法

RESTful API設計方法

伸縮性 提高 php 加網 結構 機制 事情 統架構 網頁

1.如果已經開始逐步的接觸到了RESTful API設計方法的朋友,首先要對HTTP/HTTPS有一個大致的了解,雖然本身和RESTful API沒有什麽關系。但是對於增加網站的安全性還是十分重要的,這裏就涉及到了是否公開API接口的時候,否則會導致用戶信息泄露,使網站的信譽受到影響。

2.什麽是REST?

REST全稱(resource representational state transfer)即資源在網絡中按照某種形式進行狀態轉移 --所謂的狀態轉移

可以說:REST是一種系統架構設計風格而非標準,是一種大家都可以接受的設計風格,是一種分布式的應用層解決方案

3.誕生的背景?

在早期,網頁的前後臺是一體的,比如PHP,JSP 。隨著快速發展,現在的移動端充斥著各種的Client(客戶端),於是就迫切的需要一種統一的機制來完成前後端通信,於是REST就應用而生。

3.RESTful API

對於RESTful API來說,和計算機一樣,都是從零到有。而RESTful API就是目前比較成熟的的一套應用程序API設計理論

4.使用RESTful API的目的?

目的:Client和Server端進一步解耦。

5.優點

(1)客戶端-服務器(Client-Server):提供服務的服務器和使用服務的客戶端分離解耦;

優點:提高客戶端的便捷性(操作簡單)

簡化服務器提高可伸縮性(高性能、低成本)

允許客戶端服務端分組優化,彼此不受影響

(2)無狀態(Stateless):來自客戶的每一個請求必須包含服務器處理該請求所需的所有信息(請求信息唯一性);

優點:提高可見性(可以單獨考慮每個請求)

提高可靠性(更容易故障恢復)

提高了可擴展性(降低了服務器資源使用)

(3)可緩存(Cachable):服務器必須讓客戶端知道請求是否可以被緩存?如果可以,客戶端可以重用之前的請求信息發送請求;

優點:減少交互連接數

減少連接過程的網絡時延

(4)分層系統(Layered System):允許服務器和客戶端之間的中間層(代理,網關等)代替服務器對客戶端的請求進行回應,而客戶端不需要關心與它交互的組件之外的事情;

優點:提高了系統的可擴展性

簡化了系統的復雜性

(5)統一接口(Uniform Interface)

:客戶和服務器之間通信的方法必須是統一化的。(例如:GET,POST,PUT.DELETE)

優點:提高交互的可見性

鼓勵單獨優化改善組件

(6)支持按需代碼(Code-On-Demand,可選):服務器可以提供一些代碼或者腳本並在客戶的運行環境中執行。

優點:提高可擴展性

6.API與Client的通信協議,總是使用HTTPS協議。

7.以資源為中心的URL設計

資源是 RESTful API 的核心元素,所有的操作都是針對特定資源進行的。而資源就是 URL(Uniform Resoure Locator)表示的,所以簡潔、清晰、結構化的 URL 設計是至關重要的。

RESTful API設計方法