后端接口重定向_不用再等后端的接口啦!这个开源项目花 2 分钟就能模拟出后端接口...
发布日期:2021-06-24 10:18:59 浏览次数:3 分类:技术文章

本文共 4090 字,大约阅读时间需要 13 分钟。

b230fa484f2aa59627c699513562cdad.png

本文做者:HelloGitHub-嘉文前端

这里是 HelloGitHub 推出的《讲解开源项目》系列,今天给你们带来一款开源免费的模拟后端 API 的工具:mocojava

没学事后端开发的也能快速上手这个开源项目,靓仔靓妹们没必要再辛苦等待后端开发 API,从而有更多的时间逛 HelloGitHub 体验更多有趣的开源项目。接下来本文将用带你快速上手 moco 这个开源工具,让你再也不卡在后端接口的开发进度上,一骑绝尘!git

1、moco 有什么用

我作前端或者客户端开发,对我有什么用?正则表达式

在后端 API 开发缓慢的时候,若是你想测试应用展现效果,就没必要再等后端进度,使用 moco 轻松模拟后端 API。

在项目初期的时候,产品经理或者是客户想看到你的应用展现,模拟好 API 就能够开发前端,展现效果啦。

我作后端开发,对我有什么用?json

企业级软件通常都是多人开发,由于接口之间是互相依赖的,因此若是你依赖的服务进度缓慢或者是没有在环境中运行,你就没法对你开发的功能进行测试,进而不能及时交付项目,从而加班熬夜。

即便你所依赖的服务在环境中运行,可是所依赖的服务依旧会不断测试和调优,这个过程也可能会致使你开发功能测试出现问题。一个稳定的测试接口,减小你的等待时间。

2、快速开始

2.1 准备工做

JDK 1.8+ (推荐1.8版本)

2.2 下载 jar 包

2.3 API 配置文件

新建 hello.json 文件,写入如下内容api

[{

"description": "moco 快速开始示例",

"request": {

"uri": "/hello"

},

"response": {

"text": "Hello GitHub"

}

}]

目录结构以下数组

├── hello.json // API 接口配置文件

├── moco-runner-1.1.0-standalone.jar // 下载的模拟 API 的工具

2.4 运行项目

在该目录下运行浏览器

java -jar moco-runner-1.1.0-standalone.jar http -p 9999 -c hello.json

moco-runner-1.1.0-standalone.jar:运行程序的路径(刚刚下载的包的路径)

http:选择服务类型(有 http、https、socket)

-p 9999:设置服务端口 9999

-c hello.json:设置配置文件路径(刚刚新建的配置文件)

2.5 效果展现

在浏览器中访问一下地址

localhost:9999/hello

效果如图所示

89bd6ad2e30cfd9448378c1467ae39c0.png

3、详细用法

刚刚的你应该十分轻松地模拟一个简单的后端 API,是否是颇有成就感?可是你使用或者开发事后端 API 你就也许知道:一个合格的后端 API 不该该仅仅局限如此。一个合格的后端 API 应该能包括:请求方法、请求 URL、请求参数、请求头、请求体、返回状态码、返回提示信息、返回头和返回体等内容。

如何使用 moco 这个开源项目模拟出一个合格的后端接口呢?接下来就带你一步步了解详细用法。

3.1 基本结构

[

{

"description": "moco 基本结构",

"request": {

"uri": "/hello",

"method": "post"

},

"response": {

"text": "Hello GitHub"

}

}

]

json 文件的最层是一个 [] 数组,里面能够封装多个 API(示例只有一个 API)

由于 json 配置文件不支持注释,因此这个 API 的注释你能够写到 description 里面

request 能够包含请求的全部内容

response 能够包含返回的全部内容

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 模拟服务器卡顿(由于模拟的后端 API 返回数据几乎是瞬间的,这里咱们让其卡顿 2 秒)

测试

这里咱们使用 GitHub 上面开源免费的 API 测试软件 Postman 进行测试

(1)url、请求方法、请求头和 Cookies

8c8260db3aca5b3558fdd715b945cf42.png

(2)请求体(json)

d6edad51e192919e6fb3a90443114641.png

(3)测试效果

点击 Send 发送,并在下方 response 查看测试效果

6490eaefe5d51298a5831c8301371ce3.png

查看返回的请求头

ea94223a167db2eaeb8f273b2b7cbf20.png

查看返回的 Cookies

6c2871e7db1bd0b6d347376349bf45eb.png

查看全局 Cookies

2e42b90c5e70ae0591f8e522cf8771ca.png

3.3 附件下载

有时候咱们须要模拟文件下载,moco 如何实现呢?

[{

"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 轮询数据

若是咱们刷新页面想得到不一样的内容 moco 如何实现呢?

[{

"description": "moco 轮询数据",

"request": {

"uri": "/hello"

},

"response": {

"cycle": [{

"text": "hello 1"

},

{

"text": "hello 2"

},

{

"text": "hello 3"

}

]

}

}]

访问 localhost:9999/hello 会依次获得以下内容

hello 1

hello 2

hello 3

hello 1

hello 2

...

3.5 重定向

有时候咱们想重定向页面 moco 如何实现呢?

[{

"description": "moco 重定向",

"request": {

"uri": "/hello"

},

"redirectTo": "https://hellogithub.com"

}]

访问 localhost:9999/hello 会自动重定向到 https://hellogithub.com

3.6 正则表达式

moco 还支持一些运算符,好比正则表达式。

[{

"description": "moco 正则表达式",

"request": {

"uri": {

"match": "/hello/\\w*"

}

},

"response": {

"text": "Hello GitHub"

}

}]

能够经过正则表达式匹配的连接访问,好比

localhost:9999/hello/jarvan

localhost:9999/hello/bmft

3.7 使用模板

有的时候咱们的返回参数依赖于请求参数(好比编码类型),这个时候咱们就能够用 template 模板来实现,咱们能够在模板中经过 req 来表示发送的请求 。

{

"description": "moco 使用模板",

"request": {

"uri": "/hello",

"method": "post"

},

"response": {

"text": {

"template": "${req.method}"

}

}

}

返回的值是

{

"text": "post"

}

4、最后

看到这里,想必你已经了解开源项目 moco 的基本使用了,是否是以为颇有意思?这里给出一个小建议,若是想真正使用这个开源项目 moco,建议参考官方文档去「实践」,这是最快捷,最有效的使用开源项目的办法。「实践」就是巩固的最佳方法,但愿你能在实践中体验设计程序的快乐!

至此,感谢热爱开源的小伙伴们的阅读。**公众号 HelloGitHub ** 会定时介绍 GitHub 上有趣的开源免费的项目,若是你对开源项目感兴趣,那就关注咱们收到第一时间​的文章推送吧。

转载地址:https://blog.csdn.net/weixin_32050033/article/details/113711539 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:学mysql需要英语水平多高_大学英语专业挂科率高吗
下一篇:简述mysql安装过程_mysql安装的过程

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月16日 02时42分06秒