Skip to content

This is a simple restful style mock service project

Notifications You must be signed in to change notification settings

fengcms/simple-mock

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple mock server

这是一个简单的支持 restful 风格的 mock 服务项目。

在互联网上,有很多很多 mock 的项目,那么我为什么要造这个轮子呢?很简单,我怕麻烦。因此,我在 2018 年搞了这个项目。当时这个项目就可以完整的支持我的业务需求了。

但是到了 2020 年,我回头来看这个项目,发现我当时写的代码水平有限,功能上虽然满足了当时的需求,但是想要更强大一些的功能却并不支持。

因此,我今年就抽时间,把这个项目好好的规划了一下,重新发布了 2.0.0 版本。那么现在看来,已经超额的满足了我当前的需求了。


其实,这是一个很纠结的事情。为什么要造轮子?因为怕麻烦。为什么要把这个项目搞复杂?因为太简单。那么怎么在简单和麻烦之前保持一个平衡,这 TM 是个哲学问题!

这里,我需要说明一下,我认为的麻烦,是指额外的学习成本。比如其他功能强大的 mock 项目,使用它,就得先学习它的很多规则。可是,mock 服务对于我们前端开发人员而言,只是一个过渡工具而已。当后端提供好真实的接口后,这玩意儿就随风而去了。所以,为了满足这么个小小的需求,增加学习成本,我是真的不愿意。

而我开发这个项目的初衷就是,把模拟数据复制进去,然后就好了!只要看一下简单的说明就会用了,不需要增加任何额外的学习成本。

因此,我的 2.0.0 的版本,依旧支持这种最简单的方式。除此之外,为了满足更高级的一些需求,增加了一些功能,而这些功能都是纯粹的 javascript,不需要学习额外的语法。你是前端,你就不用学习,能够顺利的使用这些高级功能。

甚至,说得夸张一点,如果你有时间,你完全可以用这个项目来构建一个真实的后端服务。当然,这在我看来是吃饱了撑的……


To 前端学习者:

如果你是在自学前端,或者自学 Nodejs, 希望成为一个全栈工程师,那么,在你的初学阶段,研究我这个项目的源码,也一定是可以收获匪浅的。

如果你已经超过了这个阶段,那么 https://github.com/fengcms/restful-cms-koa 这个项目一定很适合你,这是一个完整的基于 nodejs 的后端 WEB 框架。目前,这个项目我没有写文档,我会抽时间完善文档的。

欢迎大家关注收藏我的博客 https://blog.csdn.net/fungleo ,博客上有不少干货,相信对于前端学习者来说,还是有价值的。

安装

git clone https://github.com/fengcms/simple-mock

cd simple-mock

npm install

npm start

简单配置

项目的配置文件在 config/index.js 文件中,每一个配置我都写了详细的注释。

如上图所示,简单实用,只需要配置 prefix port hostdelay 这四个参数即可。

更多的配置以及功能,请查看 doc 目录中的说明文档。

简单使用

所有的 mock 接口文件,全部放在 /api 目录里面。比如,你有一个叫 book 的接口,那么,你就再 /api 目录下面新建一个文件叫 book.js,然后,录入基本结构如下:

module.exports = {
  name: '书本',
  info: '这是一个完整的 RESTFul 接口的演示文件',
  // GET POST /book 接口 的 Mock 数据
  list: {
    get: {},
    post: {}
  },
  // GET PUT DETETE /book/:id 接口 的 Mock 数据
  item: {
    get: {},
    put: {},
    delete: {}
  }
}

这是一个完整的 RESTFul 模拟接口的基础文件结构。然后,你可以在分别对应的请求方法里面,把你需要的模拟数据复制进去即可。详细的演示代码,可以查看 /api/book.js 文件。

如果,你不需要使用某些请求方法,那么可以直接不写就可以了。

导出对象中的 nameinfo 字段也是可以不写得。写这两个字段是为了便于管理维护,以及 mock 服务信息页面上的接口介绍。如下图所示:

如果你的项目需要多人维护的话,我个人建议还是写上。

简单测试

大家可以通过 postman 工具来对 mock 服务提供的接口进行测试,也可以通过 curl 命令来进行调试。如果大家对命令行调试接口有兴趣,可以看我的两篇文章:

《curl 模拟 GET\POST 请求,以及 curl post 上传文件》

《linux 或 mac 命令行更优雅的使用 curl 命令,以及命令行常用的快捷键说明》

我这边的测试截图如下:

共同开发

我欢迎各位朋友来补充和完善我的这个项目,你可以 fork 我的项目,进行修改后,给我发起一个 PR,我会在审查代码后进行合并。

我比较希望各位能够发一些有意思的 mock 接口的演示,或者修复我没有发现的问题和 BUG,亦或者帮助我完善一些文档。

当然,如果你嫌麻烦,或者有好的建议,也可以直接发 Issues,我会回答,或者抽时间去完善你的好想法的哦!

Copyright and License

Copyright by FungLeo(web@fengcms.com)

Blog: http://www.fengleo.com

License: MIT