rest,以及restful的通俗介紹
rest一句話可以概括為:url定位資源,用http動詞(get,post,delete,detc)描述操作— 簡潔版 —1.rest描述的是在網路中client和server的一種互動形式;rest本身不實用,實用的是如何設計 restful api(rest風格的網路介面);
2.server提供的restful api中,url中只使用名詞來指定資源,原則上不使用動詞。「資源」是rest架構或者說整個網路處理的核心。比如:
3.用http協議裡的動詞來實現資源的新增,修改,刪除等操作。即通過http動詞來實現資源的狀態扭**get
:用來獲取資源,post
:用來新建資源(也可以用於更新資源),put
: 用來更新資源,delete
:用來刪除資源。比如:
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:通俗來講就是:資源在網路中以某種表現形式進行狀態轉移。
分解開來:
restful api
實用的是如何正確地理解 restful架構和設計好restful api。
首先為什麼要用restful結構呢?
server的api如何設計才滿足restful要求?
首先是簡潔版裡面的那幾點。外加一些附帶的 best practices
1.url root:
2.api versioning: 可以放在url裡面,也可以用http的header:
/api/v1/3.uri使用名詞而不是動詞,且推薦用複數。bad:
good:
4.保證 head 和 get 方法是安全的,不會對資源狀態有所改變(汙染)。比如嚴格杜絕如下情況:
5.資源的位址推薦用巢狀結構。
比如:6.警惕返回結果的大小。
如果返回結果過大,及時進行分頁(pagination)或者加入限制(limit)。http協議支援分頁(pagination)操作,在header中使用 link 即可。
7.使用正確的http status code表示訪問狀態:
8.在返回結果用明確易懂的文字
(string。注意返回的錯誤是要給人看的,避免用 1001 這種錯誤資訊),而且適當地加入注釋。
9.關於安全
rest 以及restful 簡單介紹
rest representational state transfer 直接翻譯 表現層狀態轉移。通俗來講就是 資源在網路中以某種表現形式進行狀態轉移。resource 資源,即資料 前面說過網路的核心 比如 newsfeed,friends等 representational 某種表現形式,比如...
什麼是REST,以及RESTful?
rest representational state transfer 直接翻譯 表現層狀態轉移。這個中文直譯經常出現在很多部落格中。尼瑪誰聽得懂 表現層狀態轉移 這是人話嗎?我自己也困惑了很久,查詢了很多資料,花了差不多一年有個還算清晰的理解。分享如下 ivony 老師的一句話概括很精闢 url...
最容易理解的REST,以及RESTful
url定位資源,用http動詞 get,post,delete,detc 描述操作。rest不是 rest 這個單詞,而是幾個單詞縮寫。rest描述的是在網路中client和server的一種互動形式 rest本身不實用,實用的是如何設計 restful api rest風格的網路介面 server...