新聞中心
這篇文章主要講解了“如何快速模擬出后端接口”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“如何快速模擬出后端接口”吧!
創(chuàng)新互聯(lián)成立以來(lái)不斷整合自身及行業(yè)資源、不斷突破觀念以使企業(yè)策略得到完善和成熟,建立了一套“以技術(shù)為基點(diǎn),以客戶需求中心、市場(chǎng)為導(dǎo)向”的快速反應(yīng)體系。對(duì)公司的主營(yíng)項(xiàng)目,如中高端企業(yè)網(wǎng)站企劃 / 設(shè)計(jì)、行業(yè) / 企業(yè)門戶設(shè)計(jì)推廣、行業(yè)門戶平臺(tái)運(yùn)營(yíng)、App定制開(kāi)發(fā)、移動(dòng)網(wǎng)站建設(shè)、微信網(wǎng)站制作、軟件開(kāi)發(fā)、樂(lè)山服務(wù)器托管等實(shí)行標(biāo)準(zhǔn)化操作,讓客戶可以直觀的預(yù)知到從創(chuàng)新互聯(lián)可以獲得的服務(wù)效果。
一、moco 有什么用
我做前端或者客戶端開(kāi)發(fā),對(duì)我有什么用?
在后端 API 開(kāi)發(fā)緩慢的時(shí)候,如果你想測(cè)試應(yīng)用展示效果,就不必再等后端進(jìn)度,使用 moco 輕松模擬后端 API。
在項(xiàng)目初期的時(shí)候,產(chǎn)品經(jīng)理或者是客戶想看到你的應(yīng)用展示,模擬好 API 就可以開(kāi)發(fā)前端,展示效果啦。
我做后端開(kāi)發(fā),對(duì)我有什么用?
企業(yè)級(jí)軟件一般都是多人開(kāi)發(fā),因?yàn)榻涌谥g是互相依賴的,所以如果你依賴的服務(wù)進(jìn)度緩慢或者是沒(méi)有在環(huán)境中運(yùn)行,你就無(wú)法對(duì)你開(kāi)發(fā)的功能進(jìn)行測(cè)試,進(jìn)而不能及時(shí)交付項(xiàng)目,從而加班熬夜。
即使你所依賴的服務(wù)在環(huán)境中運(yùn)行,但是所依賴的服務(wù)依舊會(huì)不斷測(cè)試和調(diào)優(yōu),這個(gè)過(guò)程也可能會(huì)導(dǎo)致你開(kāi)發(fā)功能測(cè)試出現(xiàn)問(wèn)題。一個(gè)穩(wěn)定的測(cè)試接口,減少你的等待時(shí)間。
二、快速開(kāi)始
2.1 準(zhǔn)備工作
JDK 1.8+ (推薦1.8版本)
2.2 下載 jar 包
點(diǎn)擊此處下載 jar 包
2.3 API 配置文件
新建 hello.json
文件,寫入以下內(nèi)容
[{ "description": "moco 快速開(kāi)始示例", "request": { "uri": "/hello" }, "response": { "text": "Hello GitHub" } }]
目錄結(jié)構(gòu)如下
├── hello.json // API 接口配置文件 ├── moco-runner-1.1.0-standalone.jar // 下載的模擬 API 的工具
2.4 運(yùn)行項(xiàng)目
在該目錄下運(yùn)行
java -jar moco-runner-1.1.0-standalone.jar http -p 9999 -c hello.json
moco-runner-1.1.0-standalone.jar:運(yùn)行程序的路徑(剛剛下載的包的路徑)
http:選擇服務(wù)類型(有 http、https、socket)
-p 9999:設(shè)置服務(wù)端口 9999
-c hello.json:設(shè)置配置文件路徑(剛剛新建的配置文件)
2.5 效果展示
在瀏覽器中訪問(wèn)一下地址
localhost:9999/hello
效果如圖所示
三、詳細(xì)用法
剛剛的你應(yīng)該十分輕松地模擬一個(gè)簡(jiǎn)單的后端 API,是不是很有成就感?但是你使用或者開(kāi)發(fā)過(guò)后端 API 你就也許知道:一個(gè)合格的后端 API 不應(yīng)該僅僅局限如此。一個(gè)合格的后端 API 應(yīng)該能包括:請(qǐng)求方法、請(qǐng)求 URL、請(qǐng)求參數(shù)、請(qǐng)求頭、請(qǐng)求體、返回狀態(tài)碼、返回提示信息、返回頭和返回體等內(nèi)容。
如何使用 moco 這個(gè)開(kāi)源項(xiàng)目模擬出一個(gè)合格的后端接口呢?接下來(lái)就帶你一步步了解詳細(xì)用法。
3.1 基本結(jié)構(gòu)
[ { "description": "moco 基本結(jié)構(gòu)", "request": { "uri": "/hello", "method": "post" }, "response": { "text": "Hello GitHub" } } ]
json 文件的最層是一個(gè)
[]
數(shù)組,里面可以封裝多個(gè) API(示例只有一個(gè) API)因?yàn)?json 配置文件不支持注釋,所以這個(gè) API 的注釋你可以寫到
description
里面request
可以包含請(qǐng)求的所有內(nèi)容response
可以包含返回的所有內(nèi)容
3.2 模擬一個(gè)基本的 RESTful API
[{ "description": "模擬一個(gè)基本的 RESTful API", "request": { "uri": "/hello2", "method": "post", "headers": { "Content-Type": "application/json", "Accept": "application/json", "token": "header.playload.signature", "Accept-Charset": "utf8" }, "cookies": { "login": "true" }, "json": { "name": "zhangsan", "age": 13 } }, "response": { "json": { "message": "測(cè)試成功" }, "latency": { "duration": 2, "unit": "second" }, "headers": { "Content-Type": "application/json", "token": "new-header.new-playload.new-signature" }, "cookies": { "login": { "value": "true", "domain": "localhost", "secure": "true", "httpOnly": "true", "path": "/" } } } }]
method
:請(qǐng)求方法headers
:請(qǐng)求頭cookies
:請(qǐng)求 Cookiesjson
:請(qǐng)求體的一種類型(還有froms
表單等類型)
response headers json cookies
latency
模擬服務(wù)器卡頓(因?yàn)槟M的后端 API 返回?cái)?shù)據(jù)幾乎是瞬間的,這里我們讓其卡頓 2 秒)
測(cè)試
這里我們使用 GitHub 上面開(kāi)源免費(fèi)的 API 測(cè)試軟件 Postman 進(jìn)行測(cè)試
(1)url、請(qǐng)求方法、請(qǐng)求頭和 Cookies
(2)請(qǐng)求體(json)
(3)測(cè)試效果
點(diǎn)擊 Send 發(fā)送,并在下方 response 查看測(cè)試效果
查看返回的請(qǐng)求頭
查看返回的 Cookies
查看全局 Cookies
3.3 附件下載
有時(shí)候我們需要模擬文件下載,moco 如何實(shí)現(xiàn)呢?
[{ "description": "moco 附件下載", "request": { "uri": "/hello" }, "response": { "attachment":{ "filename": "demo.txt", "file": "demo.txt" } } }]
文件目錄
├── hello.json // API 接口配置文件 ├── moco-runner-1.1.0-standalone.jar // 模擬 API 的工具 ├── demo.txt // 要下載的文件,這里可以使用相對(duì)路徑
localhost:9999/hello
即可下載 demo.txt
文件
3.4 輪詢數(shù)據(jù)
如果我們刷新頁(yè)面想獲得不同的內(nèi)容 moco 如何實(shí)現(xiàn)呢?
[{ "description": "moco 輪詢數(shù)據(jù)", "request": { "uri": "/hello" }, "response": { "cycle": [{ "text": "hello 1" }, { "text": "hello 2" }, { "text": "hello 3" } ] } }]
訪問(wèn) localhost:9999/hello
會(huì)依次得到如下內(nèi)容
hello 1 hello 2 hello 3 hello 1 hello 2 ...
3.5 重定向
有時(shí)候我們想重定向頁(yè)面 moco 如何實(shí)現(xiàn)呢?
[{ "description": "moco 重定向", "request": { "uri": "/hello" }, "redirectTo": "https://hellogithub.com" }]
訪問(wèn) localhost:9999/hello
會(huì)自動(dòng)重定向到 https://hellogithub.com
3.6 正則表達(dá)式
moco 還支持一些運(yùn)算符,比如正則表達(dá)式。
[{ "description": "moco 正則表達(dá)式", "request": { "uri": { "match": "/hello/\\w*" } }, "response": { "text": "Hello GitHub" } }]
可以通過(guò)正則表達(dá)式匹配的鏈接訪問(wèn),比如
localhost:9999/hello/jarvan localhost:9999/hello/bmft
3.7 使用模板
有的時(shí)候我們的返回參數(shù)依賴于請(qǐng)求參數(shù)(比如編碼類型),這個(gè)時(shí)候我們就可以用 template 模板來(lái)實(shí)現(xiàn),我們可以在模板中通過(guò) req
來(lái)表示發(fā)送的請(qǐng)求 。
{ "description": "moco 使用模板", "request": { "uri": "/hello", "method": "post" }, "response": { "text": { "template": "${req.method}" } } }
返回的值是
{ "text": "post" }
感謝各位的閱讀,以上就是“如何快速模擬出后端接口”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)如何快速模擬出后端接口這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
當(dāng)前標(biāo)題:如何快速模擬出后端接口
本文路徑:http://fisionsoft.com.cn/article/pdhioj.html