web應用模式、api介面、介面測試工具postman、restful規範
阿新 • • 發佈:2022-03-28
引用:https://www.cnblogs.com/liuqingzheng/p/9506212.html
今日內容概要
- web應用模式
- API介面
- 介面測試工具postman
- restful規範
內容詳細
1、web應用模式
# 前後端混合開發 -bbs專案,頁面渲染是在後臺完成: render(request,'index.html') -後端人員: 寫前端css,js,html # 前後端分離開發---》當前主流---》(原因)前端發展出一些框架(vue,react) -js的dom操作---》html頁面--》通過js在頁面中插入內容 -bom和dom -不用模板語法渲染頁面了----》在前端使用js渲染頁面 -頁面渲染在前端完成 -以後前端人員只負責寫前端 -後端人員只負責寫後端 -前端的展現形式---》不一定只是網頁,可能是app,小程式 https://www.cnblogs.com/liuqingzheng/p/10900502.html
2、API介面
# api介面:前後端互動的媒介 # 介面有的東西 -url地址 -請求方式:get ,post -請求引數:name='西遊記' get請求--->127.0.0.1/books?name='西遊記' -響應結果 -http響應--》響應狀態碼--》響應頭---》響應體(json) # 響應狀態碼: 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 - [*]:伺服器發生錯誤,使用者將無法判斷髮出的請求是否成功
3、介面測試工具postman
# 介面測試工具:mac,win,linux都可以 # 對介面進行測試---》在瀏覽器中只能傳送get請求,發不了post,delete.. # 使用最多的軟體:postman ---》後來慢慢收費了:Postwoman # 下載地址:https://www.getpostman.com/downloads/ -雙擊 傻瓜式安裝就裝完了 # 前後端互動的編碼格式有哪幾種? -urlencoded:正常的post請求提交資料:name=lqz&age=19 -formdata:post請求上傳檔案:帶檔案二進位制形式 -json:body體中的資料格式為:{"name":"lqz","age":19}--》用的多
4、restful規範(重要)
# 前後端互動使用api介面需要符合某種規範
-restful規範---》寫前後端分離的標準
# REST全稱是Representational State Transfer,中文意思是表述(編者注:通常譯為表徵性狀態轉移)。 它首次出現在2000年Roy Fielding的博士論文中。
# RESTful是一種定義Web API介面的設計風格,尤其適用於前後端分離的應用模式中
https://api.weibo.com/2/account/get_uid.json
# restful規範10條內容:
-1 資料的安全保障--》通常使用https協議
-2 用api關鍵字標識介面---》在介面中帶api字眼--》讓別人一看就知道這是個api介面
-https://api.baidu.com/books
-https://127.0.0.1:8080/api/books
-3 多版本共存--->在介面地址中帶版本號---》
eg:
-有的人用了老版本app--》老介面v1
-有的人用了新版本app--》新介面v2
-都留---》提示儘快升級---》xx年我們就不支援xx以下版本了
-https://api.baidu.com/v1/login
-https://api.baidu.com/v2/login
-4 資料即是資源,均使用名詞(可複數)--》請求地址中儘量不出現動詞
-https://api.baidu.com/v1/users # 獲取使用者,刪除使用者,新增使用者
-5 資源操作由請求方式決定-->get,post,delete ,put,patch
-get請求是獲取資料
-post請求是新增資料
-delete請求是刪除資料
-put請求是修改資料
-patch請求是區域性修改資料
-6 請求地址中帶過濾條件
-https://api.example.com/v1/zoos?limit=10 # 返回10條資料
-https://api.example.com/v1/books?name=西遊記 # 查詢名字是西遊記的這本書
-7 響應狀態碼(http的響應狀態碼,響應體的json資料中帶狀態碼)
-http的響應狀態碼:
-1xx:請求正在處理
-2xx:請求成功(200,201) 200和201有什麼區別?
-3xx:重定向 (301和302有什麼區別)
-4xx:客戶端錯誤(404:地址不存在,403:禁止了)
-5xx:服務端錯誤
-響應體中返回json格式資料---》code,status--->也有狀態碼---》服務端自定義的
-1001 :使用者名稱錯誤
-1002 :沒有許可權
-8 錯誤處理,應返回錯誤資訊
-返回資料是json格式--》帶狀態碼---》錯誤資訊
{
error: "無許可權操作"
}
-9 返回資料格式符合如下規範(大部分公司不按這個)
-多條資料返回列表
GET /collection:返回資源物件的列表 [{name:lqz,age:19},{name:pyy,age:33}]
-單條資料返回字典
GET /collection/resource:返回單個資源物件 {name:lqz,age:19}
-新增,返回新增的物件---》{name:lqz,age:19}
POST /collection:返回新生成的資源物件
-修改,返回修改後的物件--》{name:lqz,age:19}
PUT /collection/resource:返回完整的資源物件
-修改,返回修改後的物件--》{name:lqz,age:19}
PATCH /collection/resource:返回完整的資源物件
-刪除,返回空文件
DELETE /collection/resource:返回一個空文件 -->{code:100,msg:刪除成功}
-10 返回資源中連結地址
{
"id": 1404376560,
"description": "人生五十年,乃如夢如幻;有生斯有死,壯士復何憾。",
"url": "http://blog.sina.com.cn/zaku",
"profile_image_url": "http://tp1.sinaimg.cn/1404376560/50/0/1",
"domain": "zaku",
}