溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何快速模擬出后端接口

發(fā)布時間:2021-10-20 10:18:32 來源:億速云 閱讀:285 作者:iii 欄目:web開發(fā)

這篇文章主要講解了“如何快速模擬出后端接口”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“如何快速模擬出后端接口”吧!

一、moco 有什么用

我做前端或者客戶端開發(fā),對我有什么用?

  1. 在后端 API 開發(fā)緩慢的時候,如果你想測試應(yīng)用展示效果,就不必再等后端進(jìn)度,使用 moco 輕松模擬后端 API。

  2. 在項(xiàng)目初期的時候,產(chǎn)品經(jīng)理或者是客戶想看到你的應(yīng)用展示,模擬好 API 就可以開發(fā)前端,展示效果啦。

我做后端開發(fā),對我有什么用?

  1. 企業(yè)級軟件一般都是多人開發(fā),因?yàn)榻涌谥g是互相依賴的,所以如果你依賴的服務(wù)進(jìn)度緩慢或者是沒有在環(huán)境中運(yùn)行,你就無法對你開發(fā)的功能進(jìn)行測試,進(jìn)而不能及時交付項(xiàng)目,從而加班熬夜。

  2. 即使你所依賴的服務(wù)在環(huán)境中運(yùn)行,但是所依賴的服務(wù)依舊會不斷測試和調(diào)優(yōu),這個過程也可能會導(dǎo)致你開發(fā)功能測試出現(xiàn)問題。一個穩(wěn)定的測試接口,減少你的等待時間。

二、快速開始

2.1 準(zhǔn)備工作

JDK 1.8+ (推薦1.8版本)

2.2 下載 jar 包

點(diǎn)擊此處下載 jar 包

2.3 API 配置文件

新建 hello.json 文件,寫入以下內(nèi)容

[{  "description": "moco 快速開始示例",  "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 效果展示

在瀏覽器中訪問一下地址

localhost:9999/hello

效果如圖所示

如何快速模擬出后端接口

三、詳細(xì)用法

剛剛的你應(yīng)該十分輕松地模擬一個簡單的后端 API,是不是很有成就感?但是你使用或者開發(fā)過后端 API 你就也許知道:一個合格的后端 API 不應(yīng)該僅僅局限如此。一個合格的后端 API 應(yīng)該能包括:請求方法、請求 URL、請求參數(shù)、請求頭、請求體、返回狀態(tài)碼、返回提示信息、返回頭和返回體等內(nèi)容。

如何使用 moco 這個開源項(xiàng)目模擬出一個合格的后端接口呢?接下來就帶你一步步了解詳細(xì)用法。

3.1 基本結(jié)構(gòu)

[   {     "description": "moco 基本結(jié)構(gòu)",     "request": {       "uri": "/hello",       "method": "post"     },     "response": {       "text": "Hello GitHub"     }  } ]
  • json 文件的最層是一個 [] 數(shù)組,里面可以封裝多個 API(示例只有一個 API)

  • 因?yàn)?json 配置文件不支持注釋,所以這個 API 的注釋你可以寫到 description 里面

  • request 可以包含請求的所有內(nèi)容

  • response 可以包含返回的所有內(nèi)容

3.2 模擬一個基本的 RESTful API

[{  "description": "模擬一個基本的 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": "測試成功"   },   "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 :請求方法

  • headers :請求頭

  • cookies :請求 Cookies

  • json :請求體的一種類型(還有 froms 表單等類型)

response headers json cookies
  • latency 模擬服務(wù)器卡頓(因?yàn)槟M的后端 API 返回?cái)?shù)據(jù)幾乎是瞬間的,這里我們讓其卡頓 2 秒)

測試

這里我們使用 GitHub 上面開源免費(fèi)的 API 測試軟件 Postman 進(jìn)行測試

(1)url、請求方法、請求頭和 Cookies

如何快速模擬出后端接口

(2)請求體(json)

如何快速模擬出后端接口

(3)測試效果

點(diǎn)擊 Send 發(fā)送,并在下方 response 查看測試效果

如何快速模擬出后端接口

查看返回的請求頭

如何快速模擬出后端接口

查看返回的 Cookies

如何快速模擬出后端接口

查看全局 Cookies

如何快速模擬出后端接口

3.3 附件下載

有時候我們需要模擬文件下載,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                               // 要下載的文件,這里可以使用相對路徑

localhost:9999/hello 即可下載 demo.txt 文件

3.4 輪詢數(shù)據(jù)

如果我們刷新頁面想獲得不同的內(nèi)容 moco 如何實(shí)現(xiàn)呢?

[{  "description": "moco 輪詢數(shù)據(jù)",  "request": {   "uri": "/hello"  },  "response": {   "cycle": [{     "text": "hello 1"    },    {     "text": "hello 2"    },    {     "text": "hello 3"    }   ]  }  }]

訪問 localhost:9999/hello 會依次得到如下內(nèi)容

hello 1 hello 2 hello 3 hello 1 hello 2 ...

3.5 重定向

有時候我們想重定向頁面 moco 如何實(shí)現(xiàn)呢?

[{  "description": "moco 重定向",  "request": {   "uri": "/hello"  },  "redirectTo": "https://hellogithub.com" }]

訪問 localhost:9999/hello 會自動重定向到 https://hellogithub.com

3.6 正則表達(dá)式

moco 還支持一些運(yùn)算符,比如正則表達(dá)式。

[{  "description": "moco 正則表達(dá)式",  "request": {   "uri": {    "match": "/hello/\\w*"   }  },  "response": {   "text": "Hello GitHub"  } }]

可以通過正則表達(dá)式匹配的鏈接訪問,比如

localhost:9999/hello/jarvan localhost:9999/hello/bmft

3.7 使用模板

有的時候我們的返回參數(shù)依賴于請求參數(shù)(比如編碼類型),這個時候我們就可以用 template 模板來實(shí)現(xiàn),我們可以在模板中通過 req 來表示發(fā)送的請求 。

{     "description": "moco 使用模板",     "request": {         "uri": "/hello",        "method": "post"     },     "response": {         "text": {             "template": "${req.method}"         }     } }

返回的值是

{   "text": "post" }

感謝各位的閱讀,以上就是“如何快速模擬出后端接口”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對如何快速模擬出后端接口這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI