不用再等后端的接口啦!这个开源项目花 2 分钟就能模拟出后端接口

开发 前端
今天给大家带来一款开源免费的模拟后端 API 的工具,没学过后端开发的也能快速上手这个开源项目。

 [[376640]]

今天给大家带来一款开源免费的模拟后端 API 的工具:moco

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

项目地址:https://github.com/dreamhead/moco

一、moco 有什么用

我做前端或者客户端开发,对我有什么用?

  1. 在后端 API 开发缓慢的时候,如果你想测试应用展示效果,就不必再等后端进度,使用 moco 轻松模拟后端 API。

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

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

  1. 企业级软件一般都是多人开发,因为接口之间是互相依赖的,所以如果你依赖的服务进度缓慢或者是没有在环境中运行,你就无法对你开发的功能进行测试,进而不能及时交付项目,从而加班熬夜。

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

二、快速开始

2.1 准备工作

  1. JDK 1.8+ (推荐1.8版本) 

2.2 下载 jar 包

点击此处下载 jar 包

2.3 API 配置文件

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

  1. [{ 
  2.  "description""moco 快速开始示例"
  3.  "request": { 
  4.   "uri""/hello" 
  5.  }, 
  6.  "response": { 
  7.   "text""Hello GitHub" 
  8.  } 
  9. }] 

目录结构如下

  1. ├── hello.json                             // API 接口配置文件 
  2. ├── moco-runner-1.1.0-standalone.jar       // 下载的模拟 API 的工具 

2.4 运行项目

在该目录下运行

  1. 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 效果展示

在浏览器中访问一下地址

  1. localhost:9999/hello 

效果如图所示

三、详细用法

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

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

3.1 基本结构

  1.   { 
  2.     "description""moco 基本结构"
  3.     "request": { 
  4.       "uri""/hello"
  5.       "method""post" 
  6.     }, 
  7.     "response": { 
  8.       "text""Hello GitHub" 
  9.     } 
  10.  } 
  • json 文件的最层是一个 [] 数组,里面可以封装多个 API(示例只有一个 API)
  • 因为 json 配置文件不支持注释,所以这个 API 的注释你可以写到 description 里面
  • request 可以包含请求的所有内容
  • response 可以包含返回的所有内容

3.2 模拟一个基本的 RESTful API

  1. [{ 
  2.  "description""模拟一个基本的 RESTful API"
  3.  "request": { 
  4.   "uri""/hello2"
  5.   "method""post"
  6.   "headers": { 
  7.    "Content-Type""application/json"
  8.    "Accept""application/json"
  9.    "token""header.playload.signature"
  10.    "Accept-Charset""utf8" 
  11.   }, 
  12.   "cookies": { 
  13.    "login""true" 
  14.   }, 
  15.   "json": { 
  16.    "name""zhangsan"
  17.    "age"13 
  18.   } 
  19.  }, 
  20.  "response": { 
  21.   "json": { 
  22.    "message""测试成功" 
  23.   }, 
  24.   "latency": { 
  25.    "duration"2
  26.    "unit""second" 
  27.   }, 
  28.   "headers": { 
  29.    "Content-Type""application/json"
  30.    "token""new-header.new-playload.new-signature" 
  31.   }, 
  32.   "cookies": { 
  33.    "login": { 
  34.     "value""true"
  35.     "domain""localhost"
  36.     "secure""true"
  37.     "httpOnly""true"
  38.     "path""/" 
  39.    } 
  40.   } 
  41.  } 
  42. }] 
  • method :请求方法
  • headers :请求头
  • cookies :请求 Cookies
  • json :请求体的一种类型(还有 froms 表单等类型)
  1. response 
  2. headers 
  3. json 
  4. cookies 
  • latency 模拟服务器卡顿(因为模拟的后端 API 返回数据几乎是瞬间的,这里我们让其卡顿 2 秒)

测试

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

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

(2)请求体(json)

(3)测试效果

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

查看返回的请求头

查看返回的 Cookies

查看全局 Cookies

3.3 附件下载

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

  1. [{ 
  2.  "description""moco  附件下载"
  3.  "request": { 
  4.   "uri""/hello" 
  5.  }, 
  6.  "response": { 
  7.   "attachment":{ 
  8.    "filename""demo.txt"
  9.    "file""demo.txt" 
  10.   } 
  11.  } 
  12. }] 

文件目录

  1. ├── hello.json                             // API 接口配置文件 
  2. ├── moco-runner-1.1.0-standalone.jar       // 模拟 API 的工具 
  3. ├── demo.txt                               // 要下载的文件,这里可以使用相对路径 

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

3.4 轮询数据

如果我们刷新页面想获得不同的内容 moco 如何实现呢?

  1. [{ 
  2.  "description""moco 轮询数据"
  3.  "request": { 
  4.   "uri""/hello" 
  5.  }, 
  6.  "response": { 
  7.   "cycle": [{ 
  8.     "text""hello 1" 
  9.    }, 
  10.    { 
  11.     "text""hello 2" 
  12.    }, 
  13.    { 
  14.     "text""hello 3" 
  15.    } 
  16.   ] 
  17.  } 
  18.  
  19. }] 

访问 localhost:9999/hello 会依次得到如下内容

  1. hello 1 
  2. hello 2 
  3. hello 3 
  4. hello 1 
  5. hello 2 
  6. ... 

3.5 重定向

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

  1. [{ 
  2.  "description""moco 重定向"
  3.  "request": { 
  4.   "uri""/hello" 
  5.  }, 
  6.  "redirectTo""https://hellogithub.com" 
  7. }] 

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

3.6 正则表达式

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

  1. [{ 
  2.  "description""moco 正则表达式"
  3.  "request": { 
  4.   "uri": { 
  5.    "match""/hello/\\w*" 
  6.   } 
  7.  }, 
  8.  "response": { 
  9.   "text""Hello GitHub" 
  10.  } 
  11. }] 

可以通过正则表达式匹配的链接访问,比如

  1. localhost:9999/hello/jarvan 
  2. localhost:9999/hello/bmft 

3.7 使用模板

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

  1.     "description""moco 使用模板"
  2.     "request": { 
  3.         "uri""/hello"
  4.        "method""post" 
  5.     }, 
  6.     "response": { 
  7.         "text": { 
  8.             "template""${req.method}" 
  9.         } 
  10.     } 

返回的值是

  1.   "text""post" 

四、最后

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

 

责任编辑:张燕妮 来源: HelloGitHub
相关推荐

2018-09-27 15:56:15

2021-03-03 13:25:35

CookieSessionToken

2020-04-08 16:30:45

SpringBooJava后端接口

2019-07-09 05:44:35

前后端分离架构接口规范

2021-09-18 09:45:33

前端接口架构

2020-12-16 13:40:05

MySQLESJava

2020-11-17 09:34:31

API接口后端

2022-10-28 16:08:22

Java开发语言

2022-09-01 07:18:21

分离项目Vue

2014-01-14 17:49:37

风河物联网模拟

2021-04-21 10:27:17

JavaScript代码项目

2022-02-24 13:20:31

马斯克脑机接口技术

2023-11-13 22:33:47

低代码无代码

2020-06-02 16:51:24

前端代码组件

2023-06-01 07:36:11

后端前端Java

2020-11-03 16:00:33

API接口微服务框架编程语言

2013-08-11 22:11:20

CloudBaaSBaaS

2024-01-02 10:46:14

2023-02-15 09:00:49

2023-11-29 09:04:00

前端接口
点赞
收藏

51CTO技术栈公众号