什麼是resultful:
1.根據method的不同,做不同的操作,示例:
deforder
():if request.method == 'get':
return
'獲取資料'
elif request.method == 'post':
return
'建立資料'
elif request.method == 'put':
return
'更新資料'
elif request.method == 'delete':
return
'刪除資料'
method還有patch
put 是在伺服器更新全部資源
patch 是在伺服器上更新區域性資源
2.api與使用者的通訊協議,總是使用https協議。
3.網域名稱
子網域名稱方式(解決跨域問題):
如 www.huangyongpeng.com
api.huangyongpeng.com(存在跨域問題)
url方式:
如 www.huangyongpeng.com
這樣別人一看到這種url就知道這是乙個介面。
4.版本
也可以寫在請求頭裡面,不過不推薦
5.面向資源程式設計,網路上任何東西都是資源,均使用名詞表示
如一開始用的order
6.過濾,通過在url上傳參的形式傳遞搜尋條件
如: www.huangyongpeng/api/v1/order?page=2翻到第二頁
7.狀態碼
常用的有以下幾個:
200 ok - [get]:伺服器成功返回使用者請求的資料,該操作是冪等的(idempotent)。
201 created - [post/put/patch]:使用者新建或修改資料成功。
202 accepted - [*]:表示乙個請求已經進入後台排隊(非同步任務)
204 no content - [delete]:使用者刪除資料成功。
400 invalid request - [post/put/patch]:使用者發出的請求有錯誤,伺服器沒有進行新建或修改資料的操作,該操作是冪等的。
401 unauthorized - [*]:表示使用者沒有許可權(令牌、使用者名稱、密碼錯誤)。
403 forbidden - [*] 表示使用者得到授權(與401錯誤相對),但是訪問是被禁止的。
404 not found - [*]:使用者發出的請求針對的是不存在的記錄,伺服器沒有進行操作,該操作是冪等的。
406 not acceptable - [get]:使用者請求的格式不可得(比如使用者請求json格式,但是只有xml格式)。
410 gone -[get]:使用者請求的資源被永久刪除,且不會再得到的。
422 unprocesable entity - [post/put/patch] 當建立乙個物件時,發生乙個驗證錯誤。
500 internal server error - [*]:伺服器發生錯誤,使用者將無法判斷發出的請求是否成功。
一般可以這樣看
200系列是成功
300系列是重定向問題
400系列客服端錯誤
500系列服務端錯誤
但是僅僅靠狀態碼是不能全部表示資料的狀態的,所以在返回時用code和狀態碼結合。
8.錯誤處理,返回錯誤資訊
9.返回結果,針對不同操作,伺服器向使用者返回的結果應該符合以下規範
get /order/
返回資源物件的列表(陣列)
get /order/1/
返回單個資源物件
post /order/
返回新生成的資源物件
put /order/1/
返回完整的資源物件
patch /order/1/
返回完整的資源物件
delete /order/1/
返回乙個空文件
10.hypermedia api,restful api最好做到hypermedia,即返回結果中提供鏈結,連向其他api方法,使得使用者不查文件,也知道下一步應該做什麼
resultful其實本質上就是乙個規範,定義一些規範讓我們寫api的時候更好作區分,讓後台更好作處理,讓我們的前台更好的記住這些url,說白了就是在這個url體現出對這個api的操作。遵循這個規範,就是讓大家在協同開發的時候,相互之間更加統一了。
原來我們沒用api之前,我們用的是get,post…全都能實現,但只不過url得儲存好多個,學了resultful api之後,才漸漸的去使用,但使用的過程中,也會發現有的能適用,有的不能適用。
resulful規範 resultful風格簡介
一 為了不同的前端和後端進行資訊互動,resultful api是一種比較流行的一種api規範。結構清晰符合標準,易於理解 擴充套件方便,便於前端開發者進行區分訪問介面資源。restfule風格是一種軟體架構風格,而不是標準,只是提供了一種設計原則和約束條件。主要適用於客戶端和伺服器端互動的軟體。是...
mysql 使用規範 MySQL使用規範
一 表設計類 強制類規範 1.建立表的儲存引擎必須是innodb。2.每個表必須顯式的指定乙個主鍵。3.不允許使用聯合主鍵。4.不允許使用外來鍵。5.不允許存在和主鍵重複的索引。6.自增長字段必須是主鍵或唯一索引。7.不允許在資料庫中儲存諸如,影像之類的二進位制資料。8.不允許使用text型別字段 ...
mysql 使用規範 MySQL使用規範
mysql使用規範 一 核心規範 www.2cto.com 1.不用資料庫做運營,如md5 order by rand 2.控制單錶資料量 a 單錶純int不超過1000w b 單錶含char不超過500w c 單庫不超過300 400個表 3.表字段數少而精 a 影響因素 i.io高效 ii.全表...