1. 程式人生 > 其它 >web應用模式、api介面、介面測試工具postman、restful規範

web應用模式、api介面、介面測試工具postman、restful規範

引用: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",
		}