Mock(模拟)这个词,其实源自於单元测试。主要的概念就是先省略中间的复杂情况,模拟真实的结果物件。而同理,Mock API就是先不管真实逻辑或资料处理,直接以模拟的方式给予一样格式的假资料(Mock Data),回应给前端。
为什麽需要Mock API呢? Mock API又有什麽好处?
原本的工作流程,可能会等後端开发完成後,告诉前端,前端再拿API来试试看有没有规格上的问题或正式开工串接。但这样的流程前端就必须等待後端。如果用了Mock API,先定义好双方沟通的规格後,前後端各自那着这个讨论好的规格开发,那就可以双方同时开工,增进整体时程的效率。
透过Mock API,前端可以很快速的改变自己需要的资料。更方便的测试前端需要的状况。EX.透过取得书本列表的API,当状态是'Borrowed',书本列表画面要是橘色的点;当状态是'Available'时,书本列表画面是绿色的点。如果要用真的API的话可能就必须要在从後台建立资料,设定不同状态,但透过Mock API,只需要复制资料并简单的修改数值,就可以取得所需的不同状态资料。
前端在开发的同时,後端也有可能在开发呀!如果後端开发到一半不小心把东西改坏了,或正在调整某个东西这个API不能使用,难道前端就要等後端修好才能接着开发吗?这样也太被牵制了吧,相信各位前端大大都不喜欢吧XD 有了mock API之後,API response决定权就会在前端了,各位就不用被後端牵制了,後端大大改坏也可以慢慢修罗~
OK,知道了为什麽後,我们来看看怎麽快速的建立Mock API吧~~
其实Mock API现在也有很多工具可以使用,像是stoplight、MSW(Mock Service Worker)这些Mock Server。不过今天我们要分享的不是这些第三方工具,而是自己在程序中间可以做到的Mock的简单架构!
如何简单快速的建立Mock,不同开发环境可能用不同的做法,以下以vue.js的架构做范例介绍。
1-1.建立mock环境档案.env.mock
1-2.在package.json
中,加上新的script指令,让在开发serve时,可以启用mock环境
/public
的资料夹中建立一个/mock
资料夹在一个可以被引用路径的位置,建立存放mock API的资料夹。在vue的架构中,我把这个位置放在/public
资料夹之下
Ex. 建立一个 mock api的json档案(如下图的 apiBookList.json),里面的内容就是和後端沟通好的规格
透过step1设定的mock环境变数判断目前现在的环境,如果现在环境为mock的话,便在取得api response的共用function路径,改为取得mock api json档案
最後我们只有使用 npm run serve-mock
,将刚刚package.json
中设定的以mock环境serve开发,就大公告成罗~~
你可能会想:「阿不就用一个变数就好了把response复制到这个变数就好?」
这样做也不是不行,只是之後程序会变得很乱,而有不同地方呼叫到香同API时,又要分开给这个response变数。其实这整个Mock API的概念就是把response变成变数,只是更系统化地进行。统一建立一个mock环境并将所有的假资料系统化地整理是一个後续更容易使用、维护的方法唷~
<<: D-7. Rails API认证功能 && Find All Numbers Disappeared in an Array
>>: [Day08] Storybook - 基本介绍 & 安装
不知道大家知不知道 TTRPG 呢? 比较有名的大概就是龙与地下城(D&D)吧 之前看 ho...
在我们定义method时,若需要有外来的数值input进来运算,就会定义parameter: int...
#odoo #开源系统 #数位赋能 #E化自主 在一般讨论到生产制造模组时,我们第一个会想到的架构,...
UserDefault是一种临时储存的功能,类似於我们打开游戏第一次会出现的新手教学那样,基本上他只...
天堂的世界 前几日都在讲述一些地端的工具,今天则换点口味,来讲云端的机器。以AWS举例,在云端要建立...