【REST2SQL】01RDB关系型数据库REST初设计
【REST2SQL】02 GO连接Oracle数据库
【REST2SQL】03 GO读取JSON文件
【REST2SQL】04 REST2SQL第一版Oracle版实现
【REST2SQL】05 GO 操作 达梦 数据库
【REST2SQL】06 GO 跨包接口重构代码
【REST2SQL】07 GO 操作 Mysql 数据库
【REST2SQL】08 日志重构增加输出到文件log.txt
【REST2SQL】09 给Go的可执行文件exe加图标和版本信息等
【REST2SQL】从设计到现学Go到实现,大约一个多月的时间,为了致敬费曼学习法(通过自己的语言,用最简单的话把一件事向别人讲清楚,并且让外行人也能听懂。)这一段时间输出了不少博文,主要目的是自己的学习过程记录一下。年龄大了脑子记不住了,需要的时候再回头看看。
REST2SQL核心功能就是连接数据库即可提供REST和SQL的CRUD服务。在config.json里设置数据库连接字符串及服务端口等参数,REST服务提供POST、GET、PUT、DELETE4种请求,SQL服务可执行INSERT、SELECT、UPDATE、DELETE4种SQL语句;请求结果返回JSON字符串(以后加上JSON SCHEMA)。开启REST2SQL服务,后台数据服务基本能覆盖到了,可以作为后端服务单独部署。
REST2SQL可以作为内部开发的运维工具,也可以对外提供REST服务,后端开发再也没有CRUD重复开发的烦恼。
项目 | 版本 |
---|---|
操作系统 | Windows 10 家庭中文版,4 位操作系统, 基于 x64 的处理器 |
编程语言 | Go 1.21.5 |
Oracle | Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production |
DM | DM Database Server 64 V8 DB Version: 0x7000c |
MySQL | 8.0.35 MySQL Community Server - GPL x86_6 Win64 |
浏览器 | Microsoft Edge 120.0.2210.133 (正式版本) (64 位) |
Curl | 8.0.1 (Windows) libcurl/8.0.1 Schannel WinIDN Release-Date: 2023-03-20 |
Postman | December 2023 (v10.21) |
REST2SQL采用Go语言开发编译,只有4个文件,一个配置文件config.json,一个可执行文件rest2sql.exe,另外两个为操作指南。
用记事本打开config.json可配置REST2SQL,最重要是的数据库连接字符串connString。文件内容如下:
{
"hostPort":"localhost:5217",
"connString":"mysql://blma:5217@(127.0.0.1:3306)/blma",
"_oracle":"oracle://blma:[email protected]:1521/CQYH",
"_dm":"dm://BLMA:[email protected]:5236/BLMA",
"_mysql":"mysql://blma:5217@(127.0.0.1:3306)/blma",
"_mssql":"mssql://",
"_postgresql":"postgresql://",
"REST":"GET,POST,PUT,DELETE",
"_REST":"GET,POST,PUT,DELETE",
"SQL":"SELECT",
"_SQL":"SELECT,INSERT,UPDATE,DELETE"
}
Windows系统下双击rest2sql.exe即可启动服务,启动成功后显示如下信息:
第一行为当前启动的配置信息,第二行为监听启动成功。
2024/01/12 10:57:32 config:{mysql mysql://blma:5217@(127.0.0.1:3306)/blma localhost:5217 GET,POST,PUT,DELETE SELECT}
2024/01/12 10:57:32 Starting Http Server at localhost:5217
关闭此控制台窗口就停止提供服务。
config.json文件里,配置 REST项,可以开启REST服务请求。只支持GET、POST、PUT、DELETE请求,可以设置0-4个请求,0个就是关闭REST请求。
"REST":"GET,POST,PUT,DELETE",
"_REST":"GET,POST,PUT,DELETE",
get请求支持where和orderby查询条件。
1.curl请求
curl http://127.0.0.1:5217/rest/kezz
curl http://127.0.0.1:5217/rest/kezz/?where=n_zzxj%3E300
curl http://127.0.0.1:5217/rest/kezz/?orderby=p_id
curl http://127.0.0.1:5217/rest/kezz/?where=n_zzxj%3E300&orderby=p_id
curl http://127.0.0.1:5217/rest/kezz/?orderby=p_id&where=n_zzxj%3E300
2. edge浏览器请求
POST请求,url定位要请求的表,在加上data即可。
2.curl请求
注意windows 10的curl 双引号""需要转义\
curl -X POST http://127.0.0.1:5217/rest/kezz --data {\"p_id\":-300,\"s_dm\":\"200300\",\"s_mc\":\"REST3\"}
url加where定位要更新的记录。
1.Postman请求
2.curl请求
curl -X PUT http://127.0.0.1:5217/rest/kezz/?where=p_id=-200 --data {\"s_mc\":\"CURL\"}
url加where定位要删除的记录。
1.Postman请求
2.curl请求
curl -X DELETE http://127.0.0.1:5217/rest/kezz/?where=p_id=-200
config.json文件里,配置 SQL项,可以开启SQL服务请求。只支持SELECT,INSERT,UPDATE,DELETE请求,可以设置0-4个请求,0个就是关闭SQL请求。
默认设置只能执行SELECT。
URL栏可以直接输入SQL即可执行。
http://127.0.0.1:5217/sql/select * from kezz
http://127.0.0.1:5217/sql/insert into kezz (p_id,s_dm,s_mc) values (-400,'400400','SQL')
http://127.0.0.1:5217/sql/update%20kezz%20set%20s_mc='update'%20where%20p_id%20=%20-400
http://127.0.0.1:5217/sql/delete%20from%20kezz%20where%20p_id=-400
REST2SQL实现连接数据库,数据库的表或视图即可提供REST的GET\POST\PUT\DELETE请求,SQL可执行SQL
https://download.csdn.net/download/sufuq/88684853