今天给大家带来一个开源免费的模拟后台API的工具:moco这个开源项目可以快速上手,不用回头学习-结束发展。妹子们再也不用苦苦等待后端开发API,让她们有更多时间浏览HelloGitHub,体验更多有趣的开源项目。接下来本文将借助开源工具moco带大家快速上手,让大家不再卡在后台界面的开发进度上,一骑绝尘!项目地址:https://github.com/dreamhead/moco1.moco有什么用?我做前端或客户端开发。找我有什么用?当后台API开发缓慢时,如果想测试应用的显示效果,不用等待后台的进度,使用moco轻松模拟后台API。在项目初期,产品经理或客户希望看到你的应用展示。模拟API后,就可以开发前端,展示效果了。我做后端开发,对我有什么用?企业级软件一般都是多人开发的,因为接口是相互依赖的,所以如果你所依赖的服务运行缓慢或者没有在环境中运行,你开发的功能就无法测试,那么你就不会能够按时交付他们的Project,从而加班熬夜。即使你所依赖的服务正在环境中运行,你所依赖的服务仍然会被不断测试和调优。当您开发功能测试时,此过程也可能会导致问题。稳定的测试界面减少您的等待时间。2、快速入门2.1准备工作JDK1.8+(推荐1.8版本)2.2下载jar包点击这里下载jar包2.3API配置文件创建一个hello.json文件,写入如下内容[{"description":"mocoquickstartExample","re??quest":{"uri":"/hello"},"response":{"text":"HelloGitHub"}}]目录结构如下├──hello.json//API接口配置文件├──moco-runner-1.1.0-standalone.jar//下载的模拟API2.4的工具运行该目录下的工程运行java-jarmoco-runner-1.1.0-standalone.jarhttp-p9999-chello。jsonmoco-runner-1.1.0-standalone.jar:运行程序的路径(刚才下载的包的路径)http:选择服务类型(http、https、socket)-p9999:设置服务端口9999-chello.json:设置配置文件路径(新建的配置文件)2.5效果展示在浏览器中访问地址localhost:9999/hello,效果如图3.详细使用Ju现在你应该很容易地模拟一个简单的后端API,对吧?成就感大吗?但是如果你使用过或者开发过后端API,你可能知道一个合格的后端API不应该仅限于此。一个合格的后端API应该包括:请求方法、请求URL、请求参数、请求头、请求体、返回状态码、返回提示信息、返回头和返回体等。如何使用开源项目moco来模拟合格的后端接口?接下来小编就带大家一步步了解详细的用法。3.1基本结构[{"description":"moco基本结构","re??quest":{"uri":"/hello","method":"post"},"response":{"text":"HelloGitHub"}}]json文件最顶层是一个[]数组,可以封装多个API(例子只有一个API)因为json配置文件不支持注释,可以在描述中写这个API的注释,request可以包含requestAllcontentresponse可以包含所有返回的内容3.2SimulateabasicRESTfulAPI[{"description":"SimulateabasicRESTfulAPI","re??quest":{"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:requestmethodheaders:请求头cookies:请求Cookiesjson:一种请求体(以及froms等形式)responseheadersjsoncookieslatency模拟服务器滞后(因为模拟后端API几乎是瞬间返回数据,这里我们让它冻结2秒)测试这里我们使用GitHub上的开源免费API测试软件Postman来测试(1)url、请求方法、请求头和Cookies(2)请求体(json)(3)测试结果点击Send发送,在下方response中查看测试结果查看返回的请求头查看返回的Cookies查看全局Cookies3.3附件下载有时候我们需要模拟文件下载,moco是如何实现的??[{"description":"moco附件下载","re??quest":{"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轮询数据","re??quest":{"uri":"/hello"},"response":{"cycle":[{"text":"hello1"},{"text":"hello2"},{"text":"hello3"}]}}]访问localhost:9999/hello,依次得到如下内容:hello1hello2hello3hello1hello2...3.5重定向有时候我们想对页面进行重定向moco是如何实现的呢?[{"description":"mocoredirection","re??quest":{"uri":"/hello"},"redirectTo":"https://hellogithub.com"}]访问localhost:9999/hello会自动重定向到https://hellogithub.com3.6正则表达式moco也支持一些操作符,比如正则表达式[{"description":"moco正则表达式","re??quest":{"uri":{"match":"/hello/\\w*"}},"response":{"text":"HelloGitHub"}}]可以通过正则表达式匹配链接访问,比如localhost:9999/hello/jarvanlocalhost:9999/hello/bmft3.7在使用模板的时候,有时候我们的返回参数依赖于请求参数(比如编码类型),这个到时候我们可以使用template模板来实现,我们可以在模板中使用req来表示发送的请求。{"description":"moco使用模板","re??quest":{"uri":"/hello","method":"post"},"response":{"text":{"template":"${req.method}"}}}返回的值为{"text":"post"}4.看到这里,你一定明白了开源项目moco的基本用法。你觉得有趣吗?这里有一个小建议。如果你想真正使用这个开源项目moco,建议参考官方文档来“实践”。这是使用开源项目最快、最有效的方式。“实践”是最好的巩固方式,希望你能在实践中体验设计程序的乐趣!
