RESTful概述
RESTful是目前最流行的一種互聯網軟件架構,是程序和程序之間進行數據交互須要遵循的規範。它結構清晰、符合標準、易於理解、擴展方便,因此正獲得愈來愈多網站的採用。python
REST是Representational State Transfer的縮寫,是Roy Thomas Fielding在他2000年的博士論文中提出的。其提出的設計概念和準則爲:編程
網絡上的全部事物均可以抽象爲資源後端
每一個資源都應該有惟一的標識(identifier),對資源的操做不會改變標識api
全部的操做都是無狀態的跨域
使用標準方法(GET、POST、PUT、PATCH、DELETE)操做資源安全
1. https代替http,保證數據傳輸時安全。 2. 在url中通常要體現api標識,這樣看到url就知道他是一個api。 http://www.baidu.com/api/....(建議,由於他不會存在跨域的問題) http://api.baidu.com/.... 假設: 前段:https://www.baidu.com/home 後端:https://www.baidu.com/api/ 3. 在接口中要體現版本 http://www.baidu.com/api/v1.... 注意:版本還能夠放在請求頭中 http://www.baidu.com/api/ accept: ... 4. restful也稱爲面向資源編程,視網絡上的一切都是資源,對資源能夠進行操做,因此通常資源都用名詞。 http://www.baidu.com/api/user/ 5. 若是要加入一些篩選條件,能夠添加在url中 http://www.baidu.com/api/user/?page=1&type=9 6. 根據method不一樣作不一樣操做。 get、post、put、patch、delete 7. 返回給用戶狀態碼 - 200,成功 - 300,301永久 /302臨時 - 400,403拒絕 /404找不到 - 500,服務端代碼錯誤 自定製狀態碼: def get(self,request,*args,**kwargs): result = {'code':1000,'data':None,'error':None} try: val = int('你好') except Exception as e: result['code'] = 10001 result['error'] = '數據轉換錯誤' return Response(result) 8. 返回值 GET http://www.baidu.com/api/user/ [ {'id':1,'name':'rsx','age':19}, {'id':1,'name':'rsx','age':19}, ] POST http://www.baidu.com/api/user/ {'id':1,'name':'rsx','age':43} GET http://www.baidu.com/api/user/2/ {'id':2,'name':'rsx','age':43} PUT http://www.baidu.com/api/user/2/ {'id':2,'name':'rsx','age':43} PATCH https//www.baidu.com/api/user/2/ {'id':2,'name':'rsx','age':43} DELETE https//www.baidu.com/api/user/2/ 空 9. 操做異常時,要返回錯誤信息 { error: "Invalid API key" } 10. 對於下一個請求要返回一些接口:Hypermedia AP { 'id':2, 'name':'rsx', 'age':43, 'depart': "http://www.baidu.com/api/user/30/" }