Restful API的設計與實踐

2021-07-25 17:53:54 字數 1183 閱讀 6016

restful是一種軟體架構風格,設計風格而不是標準,只是提供了一組設計原則和約束條件。它主要用於客戶端和伺服器互動類的軟體。基於這個風格設計的軟體可以更簡潔,更有層次,更易於實現快取等機制。

restful這個名稱應該很多人都不陌生,但是我發現不少人對restful存在或多或少的理解偏差。為了更好的理解什麼是restful架構風格,我建議先看看阮一峰老師的《理解restful架構》

restful的關鍵是抽取資源,使用url與資源進行對應。這邊也是多數人理解有偏差之處,即restful應該理解為面向資源的架構風格,url的設計應該是從資源的角度出發,而不應有任何的「動作」設計,其中單個資源共享同乙個介面,而不同的「動作」通過請求的方法進行區分。這也是和rpc呼叫方式或rpc-restful混合呼叫方式最大的不同之處。

綜合上面的闡述,我們來看一下什麼是restful架構:

rest是一種軟體架構模式。核心概念包括:

使用restful風格往往具有以下的優勢:

-統一介面,有了統一的規範,大家在介面設計時能夠保證理解的一致性。如,強調http應當以資源為中心,並且規範了資源uri的風格;規範了http請求動作(put,post等)的使用,具有對應的語義等。

-自描述性,url具有很強可讀性的,具有自描述性。

-無狀態性,如果提供無狀態的服務介面,可提高應用的水平擴充套件性。

-提供openapi,可提供openapi,便於第三方系統整合。

http是網路上允許傳送和接收文件的乙個協議。所謂協議就是決定哪些資訊是可以交換的、哪些資訊是可以響應給其他人的一系列規則。在http中,有兩種角色:服務端和客戶端。一般總是客戶端發起請求,然後服務端做出響應。http是基於文字的,雖然訊息體內可能包含其他型別的內容。http訊息由訊息頭和訊息內容構成。 訊息內容可以為空,他包含在頭部指令指揮下的你要傳遞給其他人的訊息內容。

它從2023年開始流行,用來構建一一些像twitter api這樣的應用。 因為rest允許以最小的開銷為不同的系統提供服務。從理論上來說,rest並不依附於網路,但是rest總是可以作為http的一種補充。rest是http驅動的,並且完全發揮了http的能力,所以這也是學習http的最佳實踐。

綜上可以得出rest是http的一種補充,它是http在特定場合下的優化版本。

參考:

Restful API的設計思路

api的就是程式設計師的ui,和其他ui一樣,你必須仔細考慮它的使用者體驗!restful只是web api json傳輸介面通過http調,取到還要自己解。rpc一般都是配套的,客戶端直接像調本地函式一樣呼叫 一般用在內網服務間呼叫,可以用rpc的框架thrift swagger可以用來管理你的r...

RESTful API設計的點

一直在使用restful api,但是好像概念還是很模糊的,總結下使用到的點 協議api與使用者的通訊協議,總是使用https協議。網域名稱應該盡量將api部署在專用網域名稱之下。版本應該將api的版本號放入url。也可以將版本資訊加入到http頭資訊中,但不如放入url方便和直觀 路徑在restf...

RESTful API 設計指南

網路應用程式,分為前端和後端兩個部分。當前的發展趨勢,就是前端裝置層出不窮 手機 平板 桌面電腦 其他專用裝置 因此,必須有一種統一的機制,方便不同的前端裝置與後端進行通訊。這導致api構架的流行,甚至出現 api first 的設計思想。restful api是目前比較成熟的一套網際網路應用程式的...