Skip to content

Latest commit

 

History

History
179 lines (118 loc) · 3.91 KB

start.md

File metadata and controls

179 lines (118 loc) · 3.91 KB

SQLRestful开发入门示例

开发环境要求

  • docker
  • notepadvscodeeditplus
  • curl(可选)
  • LinuxWindows

准备SQLRestful脚本

使用如下命令创建一个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文件👈。

运行SQLRestful开发的微服务

命令行执行以下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":"操作成功!"}

通过swagger测试

新开标签并打开网址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不能适用于复杂业务逻辑的应用场景,总之合适的才是最好的!