sqler sql 转rest api 的docker image】的更多相关文章

sqler 在社区的响应还是很不错的,已经添加了好多数据库的连接,就在早上项目的包管理还没有写明确, 下午就已经有go mod 构建的支持了,同时也调整下docker 镜像的构建,直接使用git clone + go mod 备注: go mod 是新的包管理方案,需要新版本的golang,使用容器就不存在这个问题了,同时对于国内 还有一个墙的问题,同时我push了1.7tag 的镜像,就是使用go mod 构建的. dockerfile   FROM golang:alpine as buil…
最新sqler 又发布了一个版本,同时官方文档也更新,对于数据库的连接有了详细的说明 Dockerfile 为了方便以及减少大小,使用多阶段构建,同时都通过环境变量运行 FROM alpine:latest as build ENV VERSION=v1.6 WORKDIR /app RUN apk update && apk add wget unzip RUN wget https://github.com/alash3al/sqler/releases/download/${VERS…
sqler sql 转rest api 的源码还是比较简单的,没有比较复杂的设计,大部分都是基于开源 模块实现的. 说明: 当前的版本为2.0,代码使用go mod 进行包管理,如果本地运行注意golang 版本,我使用docker 运行, 参考 https://github.com/rongfengliang/sqler-docker-compose/blob/master/Dockerfile 依赖的开源包 配置解析的(比如bind,exec,validates,include...) 使用…
sqler 从开源很快就获取了1k的star,使用起来很方便,而且也很灵活,支持的数据库也比较多. 支持的功能 无需依赖,可独立使用: 支持多种数据可类型,包括:SQL Server, MYSQL, SQLITE, PostgreSQL, Cockroachdb 等: 内置 RESTful 服务器: 内置 RESP Redis 协议,可以使用任何 redis 客户端连接到 SQLer: 内置 Javascript 解释器,可轻松转换结果: 内置验证器: 自动使用预备语句: 使用(HCL)配置语言…
sqler 的迭代还是很快的,已经2.0 了,2.0 有好多新功能的添加,同时也有好多不兼容的修改 说明: 测试使用docker-compose,同时我已经push 了docker 镜像 dalongrong/sqler 发布说明 添加 aggregate 移除 authorizers hooks 添加 authorizer script 移除 rules 添加 validators as array of scripts 添加 Go text/template 添加 include 添加 bi…
sqler 2.0 提供了一个新的指令aggregate,注意这个和sql 的聚合函数不是一个概念,这个只是为了 方便api数据的拼接 参考格式   databases {    exec = "SHOW DATABASES" ​    transformer = <<JS        // there is a global variable called `$result`,        // `$result` holds the result of the sq…
sqler 内嵌了一个js 引擎的实现(基于goja,当我们配置了exec的配置之后 调用宏(redis 接口)或者rest api 的时候会有一个全局变量$result ,保存了执行的结果,我们可以 通过js 操作数据对象,比如进行数据改写,进行一些额外的数据控制. 同时默认的demo 配置的databases 宏就包含了js 调用的demo 环境准备 docker-compose 运行 docker-compose 文件   version: "3" services:  sqle…
sqler 支持redis 协议,我们可以用过redis client 连接sqler,他会将宏住转换为redis command 实现上看源码我们发现是基于一个开源的redis 协议的golang 实现,同时sqler 内置了一些方便 的command : list. info. echo.select.ping. 目前关于redis 的使用文档基本没有,但是我们通过阅读源码可以看出,就是解析参数,第一个为 command, 第二个为数据(json 序列化之后的,下边会有使用的说明 环境准备…
macro 说明 macro 是sqler 的核心,当前的处理流程为授权处理,数据校验,依赖执行(include),聚合处理,数据转换 处理,sql 执行以及sql 参数绑定 授权处理 这个是通过golang 的js 包处理的,通过将golang 的http 请求暴露为js 的fetch 方法,放在js 引擎执行,通过 http 状态吗确认是否是执行的权限,对于授权的处理,由宏的配置指定,建议通过http hreader处理 参考格式:      authorizer = <<JS      …
早期版本(2.0 之前)使用rules 进行数据校验处理,2.0 之后进行了修改使用 validators,这样更加明确 参考格式   addpost {    // if any rule returns false,    // SQLer will return 422 code, with invalid rules.    //    // $input is a global variable holds all request inputs,    // including the…