自從用了這個(gè)神器,我再也不想寫代碼了...
背景
有時(shí)候我會(huì)碰到快速搭建測(cè)試服務(wù)的需求,比如像這樣:
- “搭建一個(gè) HTTP Service,這個(gè)服務(wù)器可以 run 在本地,也需要公網(wǎng)可以訪問,請(qǐng)求該服務(wù)可以得到一組自定義的 JSON 數(shù)據(jù)。不為別的,就為臨時(shí)快速做點(diǎn)測(cè)試用。”
這時(shí)候我想要以最短的速度完成,比如一分鐘就寫出來(lái),這時(shí)候可以怎么做?
比如大家可能想到了,跑個(gè) Flask 或者 FastAPI,把示例代碼改改,然后 Python 一個(gè)命令就跑起來(lái)了。
比如代碼像這樣:
- from typing import Optional
- from fastapi import FastAPI
- app = FastAPI()
- @app.get("/")
- def read_root():
- return {"Hello": "World"}
然后我用命令跑起來(lái):
- uvicorn main:app --reload
OK,說好的自定義 JSON 就已經(jīng)完成了。
可是我要加需求了,我要支持跨域訪問,怎么做?這時(shí)候我可能又要去搜 FastAPI cors 關(guān)鍵字,然后找到 https://fastapi.tiangolo.com/tutorial/cors/ 文檔,然后加上類似這樣的一些配置:
- from fastapi.middleware.cors import CORSMiddleware
- app = FastAPI()
- origins = [
- "http://localhost.tiangolo.com",
- "https://localhost.tiangolo.com",
- "http://localhost",
- "http://localhost:8080",
- ]
- app.add_middleware(
- CORSMiddleware,
- allow_origins=origins,
- allow_credentials=True,
- allow_methods=["*"],
- allow_headers=["*"],
- )
- ...
也還行對(duì)吧。
那現(xiàn)在我又改需求了,我要返回一張圖片怎么辦?我要返回一個(gè)文件怎么辦?我要 HTTPS 訪問怎么辦?
甚至說,我代碼寫的不熟怎么辦?為了搞這個(gè) API Service 我得花大半個(gè)小時(shí),太得不償失了吧。
畢竟大家都挺忙的。
所以我會(huì)想,這些簡(jiǎn)單的事,為啥要寫代碼解決啊?難道沒有工具通過一些可視化配置來(lái)完成嗎?
如果你也有這個(gè)痛點(diǎn),請(qǐng)繼續(xù)向下看。
如果你沒有,既然來(lái)都來(lái)了,客官繼續(xù)看看嘛...
解決方案
所以現(xiàn)在我的需求是:我想通過一個(gè)便捷的工具快速搭建一個(gè) API Server,能配置返回 JSON 或者圖片或者文件等等,甚至說動(dòng)態(tài)路由、動(dòng)態(tài)轉(zhuǎn)發(fā)等等功能,如果這些步驟還能通過可視化圖形界面來(lái)搞定就更好了。
來(lái)了,今天就給大家推薦一個(gè)工具,叫做 Mockoon。
Mockoon 是一個(gè)可以通過圖形化界面幫我們快速搭建 API 服務(wù)的工具,支持?jǐn)?shù)據(jù)模擬、路由解析、跨域訪問、HTTPS、自定義延時(shí)、Docker 等等各種你想要的功能,同時(shí)支持支持 Windows、Mac、Linux,頁(yè)面整體是這樣子的:
這布局,和 PostMan 有異曲同工之妙啊。
比如左側(cè)我們可以配置一個(gè)個(gè)請(qǐng)求列表,點(diǎn)進(jìn)去可以在右側(cè)配置詳情,比如配置是 GET 還是 POST 請(qǐng)求,path 是什么,Response Body 是什么,Response Headers 是什么,另外還有一些規(guī)則和基礎(chǔ)設(shè)置。
另外在最上面我可以配置運(yùn)行的 host 和 port,然后左上角還有一個(gè)運(yùn)行按鈕,一點(diǎn)就相當(dāng)于啟動(dòng)了 Server 了,啟動(dòng)之后按鈕就會(huì)變成紅色,再按一下就會(huì)停止,比如這里我就配置了運(yùn)行在本地 3894 端口:
然后我修改下 Body:
- {
- "data": [
- {"id": 1, "name": "Picture3", "url": "https://qiniu.cuiqingcai.com/l4ol8.jpg"},
- {"id": 2, "name": "Picture2", "url": "https://qiniu.cuiqingcai.com/zy2w3.jpg"},
- {"id": 3, "name": "Picture1", "url": "https://qiniu.cuiqingcai.com/v10oo.jpg"}
- ]
- }
這里我返回一個(gè) JSON 格式的列表,包含了三個(gè)字段。
然后接下來(lái)我要配置跨域訪問,就加一個(gè) Response Header:
- Access-Control-Allow-Origin: '*'
然后點(diǎn)擊左上角的運(yùn)行按鈕就成了。
Mockoon 還提供了快捷訪問的功能,接著點(diǎn)右上角的打開按鈕:
瀏覽器就打開了,然后數(shù)據(jù)就看到了:
咔咔咔,就這樣,我們通過非常簡(jiǎn)單的可視化配置就完成了 API Server 的搭建,熟練的話一分鐘就完成了。
有了這個(gè),我再也不想寫代碼搭建服務(wù)器了...
另外還有太多功能,比如 HTTPS、多請(qǐng)求處理、日志、路由、模板配置這里就不再一一敘述了,用到的時(shí)候查文檔就好啦:
- Cors:https://mockoon.com/docs/latest/cors/
- HTTPS:https://mockoon.com/docs/latest/https/
- Import/Export Data:https://mockoon.com/docs/latest/import-export-data/
- Mutiple Response: https://mockoon.com/docs/latest/multiple-responses/
- Proxy Mode: https://mockoon.com/docs/latest/proxy-mode/
- Request logging: https://mockoon.com/docs/latest/requests-logging/
- Response Headers: https://mockoon.com/docs/latest/response-headers/
- Routing: https://mockoon.com/docs/latest/routing/
- Templating: https://mockoon.com/docs/latest/templating/
另外 Mockoon 還支持命令行,比如通過 mockoon-cli 就可以快速創(chuàng)建一個(gè) API Server,如圖所示:
命令行的使用和安裝可以參考:https://github.com/mockoon/cli#installation
以上便是這個(gè)工具的簡(jiǎn)單介紹,更多功能等待你的探索!