跳到主要內容

【Mockoon工具箱】awesome API mocking簡介

系統開發的過程中,假設前/後端分離的開發架構下, 前端難免會需要等待後端API開發完成才能進行, 再者若與其他廠商對接時, 系統就算已經開發完成也得等待廠商, 過程中就是不斷的「🕒 等等等…」這個卡住的地方就成為了效率的阻礙點, 其中的阻礙點就是「資料來源」, 如果我們能讓這個「資料來源」更快速的產生一個雛型(模擬假資料), 對於前/後端、第三方廠商、QA…來說一定會更加有效率, 這個「資料來源雛型」就相當於程式設計中的介面(Interface),規格訂好之後, 各自角色就依照這個介面(Interface)獨立作業, 減少依賴與等待的時間。

以下三個場景可以很清楚的知道Mockoon在其中扮演著什麼角色,讓原本環環相扣的合作過程能夠適當的分離,各自獨立完成作業,最終以最小幅度進行整合。

圖片來源
圖片來源
圖片來源

上一篇我們有介紹「【Postman工具箱】 Mock Server」可以快速的搭建出Mock API環境, 但可惜的是收費機制與私有化都較為不便, 因此這次就來介紹一套開源的Mock Server產品, 會選擇這套產品的主要原因如下:

圖片來源

最重要的是這一段官方的論述, 才做了這樣的推薦與選擇, 私有及離線相信是打造產品或者自架的CI/CD最重要的一個需求。

圖片來源

既然稱之為Mock, 代表著具備自動化模擬資料的能力, 而Mockoon整合了兩大重要元件, 分別是HandlebarsFaker.js 這兩套工具, 一個負責可程式化功能, 而另一個則是負責產生亂數資料。

圖片來源

下載Mockoon

官方網站在這裡「https://mockoon.com/」, 進入後有個「Download」, 文件也都撰寫的非常齊全, 各個平台的安裝方式都已經整理好在官方文件之中, 這邊就不多加贅述了。

支援的平台有Windows、Linux、Mac。

不過這是屬於設計API的工具安裝包, 至於怎麼啟動服務就需要搭配CLI工具囉, 以下的章節也會逐一介紹。

QuickStart

Step 1: 建立新的範本

圖片來源

預設就用Dark Mode的配色, 對於眼睛使用上是比較舒緩的,目前越來越多的軟體都開始採用這種預設配色了!

Step 2: 快速建立一個hello world 模擬API

簡單的兩個步驟快速完成一個API開發, 填上路徑資訊之後, 再設計回傳資料範本, 即可完成一份靜態的GET API, 當然比較複雜互動的部份我們可以留待後續章節逐一介紹。

圖片來源

Step 3: 更改一下port避免衝突

範本預設由3000 port啟動, 但我們本機若開發許多Web應用相信3000 port被佔用會是非常頻繁的事情, 因此我們就來試著改動啟動port綁定的部份。

圖片來源

另外也支援TLS的連線方式, 需要安全加密連線的應用也可以考慮加掛憑證並啟動。

Step 4: 啟動服務

左上角有個綠色的播放紐, 按下去之後就能啟動服務。

圖片來源

Step 5: 測試API

右上角有個開啟的按鈕, 但僅限於GET的部份, 打開之後就會直接帶到預設瀏覽器進行API的呼叫, 讓我們順利驗證結果。

圖片來源

最終我們會看到瀏覽器的Response就是我們設計的假資料, 工具是不是非常容易使用?

圖片來源

如何以Docker運行一個API模擬環境?

上述的範例很方便就能架設啟一個API服務, 但總是依賴於GUI, 而我們實際上的CI/CD環境甚至是Windows Server、Linux也都比較建議用CLI的方式來運行背景服務, 正好Mockoon也支援CLI,是以nodejs的npm進行安裝, 請參考「https://mockoon.com/cli/」, 但我們又不想在主機上隨意安裝額外套件時怎麼辦? 這時候直覺會想說如果有個虛擬沙盒該有多好, 嗯…, 正好Mockoon也有Docker image可以使用, 我們就以Docker方式來運行一個API模擬環境吧!

下載Docker Imane

docker pull mockoon/cli

以Docker運行API範本

只要將我們的範本掛載進Docker Container, 並將對應的port mapping, 如此就能快速運行模擬API。

docker run -d \
--mount type=bind,source=/home/will/Downloads/test/test.json,target=/data,readonly \
-p 10010:3000 mockoon/cli:latest --data data --port 3000

更方便的Docker化打包

上述的指令相當複雜吧! 又要對應port、又要掛載、又要指定掛載的資料夾, 隨著配置越來越多很容易導致配置錯誤讓程式無法順利運作, 因此Mockoon很貼心的設計一個讓我們將設計範本連同Docker Image一併打包的方式進行輸出。

mockoon-cli dockerize \
--data ./sample-data.json \
--port 3000 \
--output ./tmp/Dockerfile

產生出來的Dockerfile會是這樣。

FROM node:14-alpine

RUN npm install -g @mockoon/cli@2.1.0
COPY mockoon-test.json ./mockoon-test.json

# Do not run as root.
RUN adduser --shell /bin/sh --disabled-password --gecos "" mockoon
RUN chown -R mockoon ./mockoon-test.json
USER mockoon

EXPOSE 3000

ENTRYPOINT ["mockoon-cli", "start", "--hostname", "0.0.0.0", "--daemon-off", "--data", "mockoon-test.json", "--container"]

# Usage: docker run -p <host_port>:<container_port> mockoon-test

結語

快速、效率的時代, 我們需要的是簡單快速使用的功能, 能夠在最短期完成任務的工具都是好工具, 我們要學習的就是快速適應的能力, 就讓我們持續學習新工具快速適應變遷的環境吧!

--------------------------------------------------------------------------------

喜歡撰寫文章的你,不妨來了解一下:
Web3.0時代下為創作者、閱讀者打造的專屬共贏平台 - 為什麼要加入?
歡迎加入一起練習寫作,賺取知識,累積財富!

留言

這個網誌中的熱門文章

java西元民國轉換_各種不同格式

C#資料庫操作(新增、修改、刪除、查詢)

【Excel好好玩】 自己的資產自己管!善用Google Sheet來幫我們評估貸款

這次介紹的主題是關於Excel的貸款還款計畫試算,我們人生中總會遇到需要大筆金額的花費,但當資金不夠時就得進行貸款,而貸款之前如果我們能夠審慎評估,並分析自己的還款能力之後在進行凍作,相信風險會小很多,因此就自己動動手來使用Google Sheet進行試算吧! 基本資料 ● 貸款總額: 1000000 ● 貸款期數: 84月 ● 年利率: 2.11% ● 月利率: 0.18% P.S 月利率 = 年利率 / 12 重要函式 PMT : 這是Google Sheet內建的重要年金計算公式,我們可以善用這個公式來計算固定利率及期數的固定攤還本息。因為PMT函式計算出的結果為負數,所以前面加上-號轉成正數。 動手做 首先我們在Excel表上列出我們的基本資料 圖片來源 其中月利率的部分就使用公式「=B4/12」 接著我們填上第一列的期數跟餘額 圖片來源 =B2 =B3 使用關鍵PMT函數來計算本息的部分 因為PMT函式計算出的結果為負數,所以前面加上-號轉成正數。 -PMT(貸款利率(月利率), 貸款期數, 貸款總額) =-PMT($B$5,$B$3,$B$2) 圖片來源 計算利息 利息 = 貸款餘額 x 月利率 =B8*$B$5 圖片來源 計算本金 本金 = 本息 - 利息 =C8-D8 圖片來源 製作第二列餘額的部分 餘額的部分 = 上一期的餘額 - 上一期的本金 圖片來源 接著拖曳該兩列往下拉,即可查看每一期的利息與本金 圖片來源 結語 雖然市面上已經有很多貸款銀行都提供了試算功能,但如果我們想要進一步管理自己的資產時,就需要將每一期的金額給計算出來,因此才會將公式運用在Excel表,讓我們的資產管理表能夠結合負債,進一步評估我們理財行動的下一步,希望這樣的經驗可以幫助到正在理財道路上打拼的夥伴,讓我們透過有效的管理,幫助荷包長大吧! 喜歡撰寫文章的你,不妨來了解一下: Web3.0時代下為創作者、閱讀者打造的專屬共贏平台 — 為什麼要加入? 歡迎加入一起練習寫作,賺取知識,累積財富!