6-5-前后端分離中 API 接口與數(shù)據(jù) Mock 的思考與應(yīng)用_第1頁(yè)
6-5-前后端分離中 API 接口與數(shù)據(jù) Mock 的思考與應(yīng)用_第2頁(yè)
6-5-前后端分離中 API 接口與數(shù)據(jù) Mock 的思考與應(yīng)用_第3頁(yè)
6-5-前后端分離中 API 接口與數(shù)據(jù) Mock 的思考與應(yīng)用_第4頁(yè)
6-5-前后端分離中 API 接口與數(shù)據(jù) Mock 的思考與應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

前后端分離中API接口與數(shù)據(jù)

Mock的思考與應(yīng)用關(guān)于我現(xiàn)任職于美團(tuán)大眾基礎(chǔ)終端組在美團(tuán)大眾負(fù)責(zé)過(guò)考試系統(tǒng)的開(kāi)發(fā)曾負(fù)責(zé)百度音樂(lè)FM,主站webapp的開(kāi)發(fā)在Node工程工具和自動(dòng)化方面有較豐富的經(jīng)驗(yàn)聯(lián)調(diào)的進(jìn)化前后端分離時(shí)代模版時(shí)代串行開(kāi)發(fā)時(shí)代模版?zhèn)鬟f數(shù)據(jù)前端必須等待API開(kāi)發(fā)完成后才能開(kāi)發(fā)開(kāi)發(fā)者閑置率高項(xiàng)目高度耦合

項(xiàng)目間數(shù)據(jù)復(fù)用度低前后端并行開(kāi)發(fā)時(shí)代的聲音約定好的API又變了,半個(gè)月 之后我才知道這件事這么多mock方案我選哪個(gè)?公司這個(gè)服務(wù)的API上哪查文 檔?文檔寫(xiě)起來(lái)好費(fèi)時(shí)寫(xiě)文檔就夠煩了,測(cè)試就免了 吧聯(lián)調(diào)面臨的現(xiàn)狀大量項(xiàng)目選擇前后端完全分離microservices大勢(shì)所向廣義上后端通常也是作為其他服務(wù)的前端廣義的前端SSO服務(wù)網(wǎng)頁(yè)端業(yè)務(wù)服務(wù)iOS端存儲(chǔ)服務(wù)這里只有“存儲(chǔ)服務(wù)”不作為廣義前端廣義的前端都可能需要mockSSO服務(wù)網(wǎng)頁(yè)端12345業(yè)務(wù)服務(wù)iOS端存儲(chǔ)服務(wù)1,2,3,4,5在開(kāi)發(fā)初期都可能需要mock這是個(gè)充滿(mǎn)輪子的世界SSO服務(wù)網(wǎng)頁(yè)端手寫(xiě)輪子mock.js使用測(cè)試服務(wù)業(yè)務(wù)服務(wù)Nocilla手寫(xiě)輪子iOS端存儲(chǔ)服務(wù)網(wǎng)頁(yè)端、iOS端幾乎無(wú)法復(fù)用API假數(shù)據(jù)輪子真的非常之多比如Github上的mock相關(guān)倉(cāng)庫(kù)就有1.3w個(gè)之多我不想造輪子,能不能用三方的方案?免開(kāi)語(yǔ)言中流程自動(dòng)單費(fèi)源立控制元測(cè)試文檔生文檔多協(xié)議侵入用成共享支持戶(hù)代碼沙盒化o

o

x

x

x

o

x

x

0

omock.js總結(jié)現(xiàn)有輪子的常見(jiàn)問(wèn)題各工具設(shè)計(jì)語(yǔ)言不中立,難以共享定義大多難以做到沙盒化難以確保API的可用性如何解決這些問(wèn)題1.定義一次API而可以處處復(fù)用API定義中心化生成API文檔流程約束API定義API

mockAPI單元測(cè)試只需要定義一次API即可自動(dòng)完成API文檔生成,mock假數(shù)據(jù),單元測(cè)試API,以及流程約束2.沙盒化沙盒常常意味著CS架構(gòu)類(lèi)似于github和git的關(guān)系在封閉環(huán)境里也能持續(xù)測(cè)試平臺(tái)僅用于共享,開(kāi)發(fā)時(shí)可以脫離平臺(tái)開(kāi)發(fā)去中心化(沙盒化)發(fā)布API被開(kāi)發(fā)程序聯(lián)調(diào)客戶(hù)端API平臺(tái)安裝API開(kāi)發(fā)測(cè)試環(huán)境外部環(huán)境一般mock開(kāi)發(fā)模式示意瀏覽器假數(shù)劫持業(yè)務(wù)接口服務(wù)代理流量代碼注入mock接入API平臺(tái)請(qǐng)求本地瀏覽器聯(lián)調(diào)客戶(hù)端劫持API剩余請(qǐng)求業(yè)務(wù)接口服務(wù)類(lèi)似MIMT,客戶(hù)端的接入完全透明,且語(yǔ)言中立如何確保API的可用性一般RD的API開(kāi)發(fā)流程發(fā)送mock請(qǐng)求單測(cè)工具開(kāi)發(fā)用服務(wù)檢測(cè)返回是否正確8080端口需要費(fèi)時(shí)間自己寫(xiě)測(cè)試,甚至費(fèi)時(shí)去調(diào)試測(cè)試代碼本身API測(cè)試接入API平臺(tái)存API定義到本地發(fā)送mock請(qǐng)求聯(lián)調(diào)客戶(hù)端開(kāi)發(fā)用服務(wù)檢測(cè)返回是否正確開(kāi)發(fā)服務(wù)依賴(lài)的其它API將API測(cè)試加入到CI過(guò)程通過(guò)把API測(cè)試過(guò)程加入到CI流程,保證 去掉mock后前端能無(wú)縫對(duì)接上后端流程控制API變更的遞歸通知項(xiàng)目成員間的Approve和Reject機(jī)制API依賴(lài)樹(shù)鎖定服務(wù)AAPI發(fā)生變化服務(wù)B服務(wù)C服務(wù)C服務(wù)D遞歸的檢測(cè)API變化所帶來(lái)的影響提升項(xiàng)目間協(xié)作效率共享API的定義通過(guò)定義我們可以輕松生成文檔持續(xù)優(yōu)化API相關(guān)的垂直搜索應(yīng)用場(chǎng)景Vane聯(lián)調(diào)平臺(tái)舉一個(gè)簡(jiǎn)單開(kāi)發(fā)場(chǎng)景示例一些常被問(wèn)的問(wèn)題道理我都懂那API如何定義呢?adoc

(api

documentation)markdown超集渲染成文檔RPC

Thrift利用code

block的語(yǔ)言聲明語(yǔ)法如RPC幾乎可以根據(jù)實(shí)際情況隨意擴(kuò)展有狀態(tài)的API請(qǐng)求如何mock?每個(gè)API是有多個(gè)case定義的可以選中任一的case組成一個(gè)scenario我們并沒(méi)有止步于此API線(xiàn)上監(jiān)測(cè)服務(wù)調(diào)用將逐步RPC化從API調(diào)用的源頭

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論