REST,RESTful到底是個什麼?

2021-08-29 14:18:22 字數 1795 閱讀 6107

0. rest不是"rest"這個單詞,而是幾個單詞縮寫。但即使那幾個單詞說出來,也無法理解在說什麼 -_-!! (不是要貶低人,是我自己也理解困難);

1. rest描述的是在網路中client和server的一種互動形式;rest本身不實用,實用的是如何設計 restful api(rest風格的網路介面);

2. server提供的restful api中,url中只使用名詞來指定資源,原則上不使用動詞。「資源」是rest架構或者說整個網路處理的核心。比如:

獲取某人的新鮮; 

獲取某人的好友列表;

獲取某人的詳細資訊;

3. 用http協議裡的動詞來實現資源的新增,修改,刪除等操作。即通過http動詞來實現資源的狀態扭**

get 用來獲取資源,

post 用來新建資源(也可以用於更新資源),

put 用來更新資源,

delete 用來刪除資源。比如:

delete  刪除某人的好友 (在http parameter指定好友id)

post 新增好友

update 更新個人資料

禁止使用: get  圖例:

4. server和client之間傳遞某資源的乙個表現形式,比如用json,xml傳輸文字,或者用jpg,webp傳輸等。當然還可以壓縮http傳輸時的資料(on-wire data compression)。

5. 用 http status code傳遞server的狀態資訊。比如最常用的 200 表示成功,500 表示server內部錯誤等。

主要資訊就這麼點。最後是要解放思想,web端不再用之前典型的php或jsp架構,而是改為前段渲染和附帶處理簡單的商務邏輯(比如angularjs或者backbone的一些樣例)。web端和server只使用上述定義的api來傳遞資料和改變資料狀態。格式一般是json。ios和android同理可得。由此可見,web,ios,android和第三方開發者變為平等的角色通過一套api來共同消費server提供的服務。

--- 詳細版 ---

先說rest名稱

rest -- representational state transfer

首先,之所以晦澀是因為前面主語被去掉了,全稱是 resource representational state transfer:通俗來講就是:資源在網路中以某種表現形式進行狀態轉移。分解開來:

resource:資源,即資料(前面說過網路的核心)。比如 newsfeed,friends等;

representational:某種表現形式,比如用json,xml,jpeg等;

state transfer:狀態變化。通過http動詞實現。

rest的出處restful api

實用的是如何正確地理解 restful架構和設計好restful api。

首先為什麼要用restful結構呢?

首先是簡潔版裡面的那幾點。外加一些附帶的 best practices:

1. url root:

api versioning:

可以放在url裡面,也可以用http的header:

/api/v1/

3. uri使用名詞而不是動詞,且推薦用複數。

badgood

Webhook到底是個啥?

伺服器 jenkins servergit serverngrokgithub webhook 在配置jenkins實現前端自動化構建的過程中,對於自動化的過程理解很模糊,只是知道jenkins伺服器,git倉庫和後端應用伺服器這三個概念。答案就是 git webhook機制發出請求,告知jenki...

elemtype到底是個啥?

以前對這個東西的一知半解,今天有時間,查了多方面的資料,總結下 elemtype簡單來說就是 用來更好的替代,他也可以叫做別的名字,比如說 define elemtype int 寫程式,就可以用elemtype來進行替代int,若以後想要改elemtype所定義的資料型別為char,直接 defi...

generator yield到底是個啥

先來乙個函式 function show let gen show gen.next 12 gen.next 5 通過函式我們可以看到,定義a接收了yield傳進來的引數,現在請大家和我玩個遊戲,猜猜看a是幾 好了,不賣關子了,咱們執一下看看 那麼現在反過來就有乙個問題了,可能有些人會說,等會,我有...