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是幾 好了,不賣關子了,咱們執一下看看 那麼現在反過來就有乙個問題了,可能有些人會說,等會,我有...