




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國(guó)柔性防水干混砂漿數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 傳統(tǒng)香料采購(gòu)合同
- 2025年02月貴州食品工程職業(yè)學(xué)院公開(kāi)招聘17人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 科技引領(lǐng)下的生活新體驗(yàn)-社區(qū)科普活動(dòng)規(guī)劃
- 2025年02月貴州省藥品監(jiān)督管理局所屬事業(yè)單位公開(kāi)招聘10人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 電子商務(wù)在客戶(hù)服務(wù)中的智能應(yīng)用
- 銀行信托合同范本
- 現(xiàn)代電子競(jìng)技產(chǎn)業(yè)從游戲到經(jīng)濟(jì)的躍遷
- 塑料涂布、浸漬或覆蓋紙及紙板企業(yè)縣域市場(chǎng)拓展與下沉戰(zhàn)略研究報(bào)告
- 工業(yè)技術(shù)配套用紙企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- 圍手術(shù)期肺部感染
- 餐飲服務(wù)食品安全監(jiān)督量化分級(jí)動(dòng)態(tài)等級(jí)評(píng)定檢查表
- 北師大版語(yǔ)文選修《蕭蕭》ppt課件1
- 大學(xué)生職業(yè)素養(yǎng)課件-5第五單元學(xué)會(huì)有效溝通-PPT課件
- 《談骨氣》課文閱讀(共2頁(yè))
- 病原生物與免疫學(xué)(中職)緒論P(yáng)PT課件
- 新起點(diǎn)小學(xué)英語(yǔ)一年級(jí)上冊(cè)單詞卡片(共23頁(yè))
- 蝴蝶蘭PPT課件
- 譯林版五下英語(yǔ)1-3單元電子稿
- 工業(yè)管道檢查報(bào)告
- 節(jié)后復(fù)工安全溫馨提示
評(píng)論
0/150
提交評(píng)論