一个极小化的 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