本地接口模拟器

caffeine

一个极小化的 JSON 服务器,可以在本地快速起一个服务,提供 JSON 数据的 RESTful API。基于Go语言开发。

用于前端同学做本地接口模拟非常有用。当后端还没有写好接口,但是我们又不想写静态的数据的话,可以用 caffeine 在本地模拟接口,用于开发测试。

这能够使前后端项目解耦,前端更专注于开发,减少线上调试,以此提升开发效率。

特性

  • 不需要建立数据库,所有数据都是自动管理的*

  • 多命名空间的 REST 范例 CRUD

  • 支持JWT认证

  • 实时通知(HTTP/SSE)

  • 模式验证

  • 自动生成Swagger/OpenAPI规范

  • 使用类似jq的语法进行搜索(请参见https://stedolan.github.io/jq/manual/)

  • 支持 CORS

  • 易于作为容器部署

目前支持的存储:

  • 内存数据库(map)服务关闭数据丢失

  • sqlite 服务关闭数据不丢失

  • postgres

  • filesystem storage

使用方法

参考文档

去GitHub下载代码,只需使用以下命令启动服务器:

go run caffeine.go

注意本地要安装go语言环境

可选参数包括:

在不指定参数的情况下,默认将数据存储到缓存中,服务重启创建的接口就没有了;最好使用 -DB_TYPE 参数指定存储接口到 sqlite 中,这样服务重启接口不会丢失。

注意 要同时配置 DB_PATH,否则会报错 sqlite 找不到数据库文件

  -AUTH_ENABLED=false: enable JWT auth
  -DB_TYPE="memory": db type to use, options: memory | postgres | fs | sqlite
  -DB_PATH="./data": path of the file storage root or sqlite database
  -IP_PORT=":8000": ip:port to expose
  -PG_HOST="0.0.0.0": postgres host (port is 5432)
  -PG_PASS="": postgres password
  -PG_USER="": postgres user

创建接口

如创建具有ID和一些json数据的新“用户”:

> curl -X POST -d '{"name":"jack","age":25}'  http://localhost:8000/ns/users/1

{"name":"jack","age":25}

将验证该值,但它可以是任何内容(在JSON中!)
稍后可以使用以下请求获取接口数据:

curl http://localhost:8000/ns/users/1

{"name":"jack","age":25}

其他操作参考 https://github.com/rehacktive/caffeine#all-operations

引用链接

[1] caffeine: https://github.com/rehacktive/caffeine
[2] 参考文档: https://github.com/rehacktive/caffeine