docker
notepad
或vscode
或editplus
curl
(可选)Linux
或Windows
使用如下命令创建一个demo.hcl
文件:
cat>demo.hcl<<EOF
//接口定义
//自动建表
_create_db {
exec = <<SQL
CREATE TABLE IF NOT EXISTS test (
name TEXT PRIMARY KEY NOT NULL,
hello TEXT NOT NULL
);
SQL
}
//测试接口
test {
//定义接口标签
tags = ["1.示例接口"]
//引入自动建表
include = ["_create_db"]
//定义接口地址
path = "/test"
//获取分页数据接口
get {
//概要描述
desc = "获取分页数据"
//绑定参数
bind {
offset = "$input.offset"
limit = "$input.limit"
}
//返回记录总数
total = <<SQL
SELECT COUNT(*) FROM test;
SQL
//返回分页数据
exec = <<SQL
SELECT name, hello FROM test LIMIT :limit OFFSET :offset;
SQL
}
//新增数据
post {
//概要描述
desc = "新增数据"
//参数绑定
bind {
name = "$input.name"
hello = "$input.hello"
}
//插入数据库并返回插入记录
exec = <<SQL
INSERT OR REPLACE INTO test (name, hello) VALUES(:name, :hello);
---
SELECT name, hello FROM test WHERE name = :name;
SQL
//返回对象
result = "object"
}
}
EOF
👉这里可以直接下载demo.hcl文件👈。
命令行执行以下docker
命令运行示例脚本开发的微服务接口:
docker run -ti --rm -p 80:80 \
-v /path/of/your_demo.hcl:/test/demo.hcl:ro \
snz1/sqlrestful \
-driver "sqlite3" \
-dsn "/test/db.sqlite?create=true" \
--swagger \
-debug 3 \
-config /test/demo.hcl \
-p 80:80
前面那个80
表示宿主机转发的端口/path/of/your_demo.hcl
为你创建的SQLRestful脚本文件
如果你使用远程主机运行SQLRestufl服务请把下面命令中的
127.0.0.1
替换成远程主机地址。
- 命令行执行:
curl -X POST "http://127.0.0.1/test?name=hello&hello=world"
- 命令行返回:
{"code":0,"data":{"hello":"world","name":"hello"},"message":"操作成功!"}
- 命令行执行:
curl -X GET "http://127.0.0.1/test?limit=15
- 命令行返回:
{"code":0,"data":{"data":[{"hello":"world","name":"hello"}],"offset":"0","total":1},"message":"操作成功!"}
新开标签并打开网址http://127.0.0.1/swagger-ui.html,如下图所示:
SQlRestful提供了一个SwaggerUI界面用于测试实现的微服务接口,其默认是禁用的。
如果需要启用SwaggerUI界面请在启动命令中加上-swagger
开关。
SQLRestful除了可以使用sql
实现简单的微服务接口外,还可以配合js
脚本实现复杂功能的,包括:
- 内置多种数据库支持(参见【数据库支持列表】)
- 可通过
js
脚本实现可变条件的SQL
查询; - 可通过
js
配置实现对请求参数的校验; - 可通过
js
实现SQL
查询结果转换; js
脚本可请求其他接口并支持jwt
规范;- 为接口提供配置方式的
Redis
缓存实现; - 提供基于用户统一安全认证服务规范的权限验证配置
使用建议
☞ SQLRestful云原生开发工具是为了节省数据中台服务接口的开发成本!
☞ SQLRestful不能适用于复杂业务逻辑的应用场景,总之合适的才是最好的!