免费A级毛片无码专区网站-成人国产精品视频一区二区-啊 日出水了 用力乖乖在线-国产黑色丝袜在线观看下-天天操美女夜夜操美女-日韩网站在线观看中文字幕-AV高清hd片XXX国产-亚洲av中文字字幕乱码综合-搬开女人下面使劲插视频

努力一周,開源一個(gè)超好用的接口Mock工具——Msw-Tools

作為一名前端開發(fā),是不是總有這樣的體驗(yàn):基礎(chǔ)功能邏輯和頁面UI開發(fā)很快速,本來可以提前完成,但是接口數(shù)據(jù)聯(lián)調(diào)很費(fèi)勁,耗時(shí)又耗力,有時(shí)為了保證進(jìn)度還不得不加加班 。為了擺脫這種痛苦,經(jīng)過一周的努力,從零開發(fā)了一個(gè)靈活無依賴,且集成簡單的數(shù)據(jù)接口 Mock 工具——Msw-Tools,已開源到 NPM,希望對前端小伙伴有所幫助 。

努力一周,開源一個(gè)超好用的接口Mock工具——Msw-Tools

文章插圖
一、前言Msw-Tools(Mock Service Worker tools)是一個(gè)基于 Msw.jsSvelte 構(gòu)建的數(shù)據(jù) Mock 工具,用于前后端接口數(shù)據(jù)聯(lián)調(diào),和不同數(shù)據(jù)、不同場景的功能測試 。
痛點(diǎn)引導(dǎo)需求,需求決定產(chǎn)品 。
開發(fā) Msw-Tools 最初為了解決我日常開發(fā)中遇到的痛點(diǎn),也就是前邊說的,前后端接口數(shù)據(jù)聯(lián)調(diào)比較耗時(shí),很容易影響開發(fā)進(jìn)度 。早在以前也使用過很多相應(yīng)的 Mock 方案,但是總感覺不夠靈活,而大部分都需要在項(xiàng)目中寫 Mock 數(shù)據(jù)的邏輯代碼,這一點(diǎn)是我比較抵制的 。因?yàn)檫@樣做很容易造成代碼耦合,甚至一不小心就會(huì)把Mock代碼打包到生產(chǎn)環(huán)境 。
二、前端常用的常用的MOCK方案前端常用的常用的MOCK方案有以下幾類:
  1. 代碼侵入: 直接在代碼中寫死 Mock 數(shù)據(jù),或者請求本地的 JSON 文件,總之,一切需要侵入代碼切換環(huán)境的行為都是不好的,實(shí)際開發(fā)中最常用,但不推薦 。
  2. 接口管理工具: 代表為 Apifix、Swagger、Yapi、Moco、Rap等,配置功能強(qiáng)大,有統(tǒng)一的接口管理后臺,查找使用方便 。但是重度依賴后端,前端發(fā)揮空間小,一般會(huì)作為大團(tuán)隊(duì)的基礎(chǔ)建設(shè)而存在,維護(hù)成本比較高 。
  3. 本地 node 服務(wù)器: 代表為 Json-server,基于本地 json 文件的增刪改查,配置簡單,自定義程度高 。但是無法隨著后端 API 的修改而自動(dòng)修改 。
  4. 請求攔截: 代表為 Mockjs,通過攔截特定的AJAX請求,并生成給定的數(shù)據(jù)類型的隨機(jī)數(shù),但是需要在業(yè)務(wù)代碼中調(diào)用,有入侵性 。
  5. 抓包工具: 代表為 Charles 、Fiddler 等軟件工具,便于混合開發(fā)的問題排查、線上問題排查,但是使用和調(diào)試相對繁瑣 。
  6. 組合模式: 代表為 Easy-mock,提供在線服務(wù)和接口代理,官網(wǎng)建設(shè)中 。
  7. 其他方案: 代表為 Jsonplaceholder,直接 fetch 遠(yuǎn)程的數(shù)據(jù),文檔簡單 。
三、Msw-Tools 靈感火花
  • 靈感: 很早以前用過 mockjs 來攔截?cái)?shù)據(jù),于是就很好奇,網(wǎng)絡(luò)請求是怎么攔截的?恰好最近在 npm 上看到一個(gè)很不錯(cuò)的開源庫 msw,原來這個(gè)也是做 Mock 數(shù)據(jù)的 。于是就大概看了一下 mswjs官網(wǎng)介紹,其中提供了很靈活的API,讓我們以 Express 路由的形式去配置 Mock 接口,但是所有的 mock 數(shù)據(jù)都是提前在代碼中集成的 。然后,我就在想能不能由 Mock 調(diào)試者或使用者自由的去配置接口 Url 和 Mock 數(shù)據(jù),如果能實(shí)現(xiàn),不僅開發(fā)者能靈活的配置想要的接口數(shù)據(jù),而且測試人員也能很方便的來修改接口數(shù)據(jù),以達(dá)到測試不同數(shù)據(jù)、不同場景的情況,并且還能避免修改數(shù)據(jù)庫 。
四、Msw-Tools 功能特點(diǎn)