本文做者:HelloGitHub-嘉文前端
这里是 HelloGitHub 推出的《讲解开源项目》系列,今天给你们带来一款开源免费的模拟后端 API 的工具:mocojava
没学事后端开发的也能快速上手这个开源项目,靓仔靓妹们没必要再辛苦等待后端开发 API,从而有更多的时间逛 HelloGitHub 体验更多有趣的开源项目。接下来本文将用带你快速上手 moco 这个开源工具,让你再也不卡在后端接口的开发进度上,一骑绝尘!git
项目地址:https://github.com/dreamhead/mocogithub
我作前端或者客户端开发,对我有什么用?正则表达式
我作后端开发,对我有什么用?json
JDK 1.8+ (推荐1.8版本)
新建 hello.json
文件,写入如下内容api
[{ "description": "moco 快速开始示例", "request": { "uri": "/hello" }, "response": { "text": "Hello GitHub" } }]
目录结构以下数组
├── hello.json // API 接口配置文件 ├── moco-runner-1.1.0-standalone.jar // 下载的模拟 API 的工具
在该目录下运行浏览器
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:设置配置文件路径(刚刚新建的配置文件)
在浏览器中访问一下地址
localhost:9999/hello
效果如图所示
刚刚的你应该十分轻松地模拟一个简单的后端 API,是否是颇有成就感?可是你使用或者开发事后端 API 你就也许知道:一个合格的后端 API 不该该仅仅局限如此。一个合格的后端 API 应该能包括:请求方法、请求 URL、请求参数、请求头、请求体、返回状态码、返回提示信息、返回头和返回体等内容。
如何使用 moco 这个开源项目模拟出一个合格的后端接口呢?接下来就带你一步步了解详细用法。
[ { "description": "moco 基本结构", "request": { "uri": "/hello", "method": "post" }, "response": { "text": "Hello GitHub" } } ]
[]
数组,里面能够封装多个 API(示例只有一个 API)description
里面request
能够包含请求的全部内容response
能够包含返回的全部内容[{ "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
:请求 Cookiesjson
:请求体的一种类型(还有 froms
表单等类型)response
返回值的 headers
、json
、cookies
也相似latency
模拟服务器卡顿(由于模拟的后端 API 返回数据几乎是瞬间的,这里咱们让其卡顿 2 秒)测试
这里咱们使用 GitHub 上面开源免费的 API 测试软件 Postman 进行测试
(1)url、请求方法、请求头和 Cookies
(2)请求体(json)
(3)测试效果
点击 Send 发送,并在下方 response 查看测试效果
查看返回的请求头
查看返回的 Cookies
查看全局 Cookies
有时候咱们须要模拟文件下载,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
文件
若是咱们刷新页面想得到不一样的内容 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 ...
有时候咱们想重定向页面 moco 如何实现呢?
[{ "description": "moco 重定向", "request": { "uri": "/hello" }, "redirectTo": "https://hellogithub.com" }]
访问 localhost:9999/hello
会自动重定向到 https://hellogithub.com
moco 还支持一些运算符,好比正则表达式。
[{ "description": "moco 正则表达式", "request": { "uri": { "match": "/hello/\\w*" } }, "response": { "text": "Hello GitHub" } }]
能够经过正则表达式匹配的连接访问,好比
localhost:9999/hello/jarvan localhost:9999/hello/bmft
有的时候咱们的返回参数依赖于请求参数(好比编码类型),这个时候咱们就能够用 template 模板来实现,咱们能够在模板中经过 req
来表示发送的请求 。
{ "description": "moco 使用模板", "request": { "uri": "/hello", "method": "post" }, "response": { "text": { "template": "${req.method}" } } }
返回的值是
{ "text": "post" }
看到这里,想必你已经了解开源项目 moco 的基本使用了,是否是以为颇有意思?这里给出一个小建议,若是想真正使用这个开源项目 moco,建议参考官方文档去「实践」,这是最快捷,最有效的使用开源项目的办法。「实践」就是巩固的最佳方法,但愿你能在实践中体验设计程序的快乐!
至此,感谢热爱开源的小伙伴们的阅读。**公众号 HelloGitHub ** 会定时介绍 GitHub 上有趣的开源免费的项目,若是你对开源项目感兴趣,那就关注咱们收到第一时间的文章推送吧。
参考: