rest全稱是representational state transfer,表述狀態轉移的意思。它是在roy fielding博士**首次提出。rest本身沒有創造新的技術、元件或服務,它的理念就是在現有的技術之上,更好的使用現有的 web規範。用rest規範的web伺服器,能夠更好的展現資源,客戶端能夠更好的使用資源。每個資源都由uri/id標識。rest本身跟http無關,但是目前http是與它相關的唯一例項。rest有著優雅、簡潔的特性,本文是根據豆瓣api來談談自己對restful的一些理解。
uri 的格式:
uri的格式定義如下:
uri = scheme "://" authority "/" path [ "?" query ] [ "#" fragment ]
比如
"/"分隔符一般用來對資源層級的劃分,比如:
/book/1220562
表述了豆瓣api,version2下的圖書倉庫下的編號為1220562的圖書。
比如 豆瓣圖書api:
name
method
api獲取圖書資訊
get/v2/book/:id
使用者收藏某本圖書
post
/v2/book/:id/collection
使用者修改對某本圖書的收藏
put/v2/book/:id/collection
使用者刪除對某個圖書的收藏
delete
/v2/book/:id/collection
比如,上述介面中,使用者收藏某本書對外暴露的介面是」/v2/book/:id/collection」,收藏動作通過post方法來展現,而不直接寫著api中,collection 「收藏」,名次,動作直接轉換成了資源。
###4.選擇合適的狀態碼
http請求需要返回狀態碼,約定俗成的狀態碼能夠幫助開發團隊提高溝通效率。
比如豆瓣api返回的狀態碼說明:
狀態碼含義
說明200
ok請求成功
201created
建立成功
202accepted
更新成功
400bad request
請求不存在
401unauthorized
未授權403
forbidden
禁止訪問
404not found
資源不存在
500internal server error
內部錯誤
通用錯誤碼,具體產品由具體產品api給出。比如豆瓣api:
錯誤碼錯誤資訊
含義999
unknow_v2_error
未知錯誤
1000
need_permission
需要許可權
1001
uri_not_found
資源不存在…….
…太多了,只列出幾條,具體見豆瓣 api。
對資源的增,刪,改,查操作,其實都可以通過get/post完成,不一定要用put和delete。
一:jersey框架,實現了restful風格,常用的註解@get、@post、@put、@delete如下:
@get:
對應get請求
作用:標識該操作是用於獲取服務端的資源,可以理解為select操作
@post:
對應post請求
作用:用於向服務端新增資料,常用於提交表單。可以理解為insert操作
特點:理論上post方式,對提交的資料大小沒有限制;資料通過http協議的body體中進行傳遞,不會暴露使用者資訊,相對安全
@put:
對應put請求
作用:用於向服務端更新資料,與post的使用很相似。可以理解為update操作
@delete:
對應delete請求
作用:標識該操作是:用於刪除服務端的資源,可以理解為delete操作
二:@head:
作用:只請求頁面首部,響應報文中沒有實體的主體部分(沒有body體)
與@get的區別如圖:
eg:修改出生birthdate,應該是對應的put請求;但是又關聯修改年齡age,還新增insert或者刪除delete關聯的資料(可能不符合邏輯),此時有是post、delete的請求方式。但是我們方法對應的請求只能有乙個,我們會使用最初的put請求,因為後面的相關操作都是在修改birthdate的基礎上來展開的,我們只需要給出最初的請求方式即可。
php 豆瓣api 本地呼叫豆瓣API
呼叫豆瓣的api,報錯 剛開始學php,求大腿幫忙解決 頁面搜尋 js go click function elseelse var sq input val ajax type get url datatype json data q sq,count 10 success function da...
豆瓣api介面
獲取正在熱映的電影 訪問引數 start 資料的開始項 count 單頁條數 city 城市 獲取電影top250 訪問引數 start 資料的開始項 count 單頁條數 獲取即將上映電影 訪問引數 start 資料的開始項 count 單頁條數 電影搜尋 訪問引數 start 資料的開始項 co...
前端開發API 豆瓣開放API
目錄前言 具體api 1 豆瓣熱映 2 電影top250 3 電影條目檢索 4 條目詳情 前後端的分離,在和後端對接之前,前端開發人員除錯的時候,總是面對沒有真實資料的尷尬地位。雖然有mock.js可以模擬資料,但是始終只是在本地進行模擬。而豆瓣提供的這些公開的介面,相信可以滿足大部分前端的開發。遺...