当前位置: 首页 > news >正文

【REST2SQL】10 REST2SQL操作指南

【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重复开发的烦恼。

0 我的开发测试环境

项目版本
操作系统Windows 10 家庭中文版,4 位操作系统, 基于 x64 的处理器
编程语言Go 1.21.5
OracleOracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
DMDM Database Server 64 V8 DB Version: 0x7000c
MySQL8.0.35 MySQL Community Server - GPL x86_6 Win64
浏览器Microsoft Edge 120.0.2210.133 (正式版本) (64 位)
Curl8.0.1 (Windows) libcurl/8.0.1 Schannel WinIDN Release-Date: 2023-03-20
PostmanDecember 2023 (v10.21)

1 REST2SQL文件

REST2SQL采用Go语言开发编译,只有4个文件,一个配置文件config.json,一个可执行文件rest2sql.exe,另外两个为操作指南。
在这里插入图片描述

2 REST2SQL配置config.json

用记事本打开config.json可配置REST2SQL,最重要是的数据库连接字符串connString。文件内容如下:

{"hostPort":"localhost:5217","connString":"mysql://blma:5217@(127.0.0.1:3306)/blma","_oracle":"oracle://blma:5217@127.0.0.1:1521/CQYH","_dm":"dm://BLMA:dameng5217@127.0.0.1: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"}
  • hostPort 配置服务监听端口。
  • connString 配置数据库连接字符串,下面有_oracle、_dm、_mysql的配置范例,目前支持这三种数据库,以后还会扩展。
  • REST 配置可允许的REST请求,可在GET、POST、PUT、DELETE中选配,默认全部。
  • SQL 配置可允许执行的SQL语句,可在SELECT、INSERT、UPDATE、DELETE中选配,默认SELECT

3 启动REST2SQL服务

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

关闭此控制台窗口就停止提供服务。

4 REST请求操作

config.json文件里,配置 REST项,可以开启REST服务请求。只支持GET、POST、PUT、DELETE请求,可以设置0-4个请求,0个就是关闭REST请求。

	"REST":"GET,POST,PUT,DELETE", "_REST":"GET,POST,PUT,DELETE", 

4.1 GET请求

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浏览器请求

在这里插入图片描述

3.Postman请求
在这里插入图片描述

4.2 POST请求

POST请求,url定位要请求的表,在加上data即可。

1.Postman请求
在这里插入图片描述

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\"}

在这里插入图片描述

4.3 PUT请求

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\"}

在这里插入图片描述

4.4 DELETE请求

url加where定位要删除的记录。
1.Postman请求
在这里插入图片描述

2.curl请求

curl  -X DELETE http://127.0.0.1:5217/rest/kezz/?where=p_id=-200 

在这里插入图片描述

5 SQL执行操作

config.json文件里,配置 SQL项,可以开启SQL服务请求。只支持SELECT,INSERT,UPDATE,DELETE请求,可以设置0-4个请求,0个就是关闭SQL请求。
默认设置只能执行SELECT。
URL栏可以直接输入SQL即可执行。

5.1 执行SELECT语句

http://127.0.0.1:5217/sql/select * from kezz

在这里插入图片描述

5.2 执行INSERT语句

http://127.0.0.1:5217/sql/insert into kezz (p_id,s_dm,s_mc) values (-400,'400400','SQL')

在这里插入图片描述

5.3 执行UPDATE语句

http://127.0.0.1:5217/sql/update%20kezz%20set%20s_mc='update'%20where%20p_id%20=%20-400

在这里插入图片描述

5.4 执行DELETE语句

http://127.0.0.1:5217/sql/delete%20from%20kezz%20where%20p_id=-400

在这里插入图片描述

6 资源下载

REST2SQL实现连接数据库,数据库的表或视图即可提供REST的GET\POST\PUT\DELETE请求,SQL可执行SQL
https://download.csdn.net/download/sufuq/88684853

相关文章:

【REST2SQL】10 REST2SQL操作指南

【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 数据库 【RE…...

199_二叉树的右视图

描述 给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 思路 对树进行深度优先搜索,在搜索过程中,我们总是先访问右子树。那么对于每一层来说,…...

第七讲_css浮动

css浮动 1. 设置浮动2. 浮动的特点3. 浮动的影响4. 解决浮动的影响4.1 解决父元素高度塌陷的问题4.2 解决对兄弟元素影响问题 1. 设置浮动 浮动是通过float属性设置,float取值范围: none:不浮动,默认值。left:向左浮…...

2024秋招,顺丰科技测试开发工程师一面

前言 今天回顾一下,一个被捞的全流程面试经历 时间线 9月21日测评 10月26日技术一面,本来是11点半开始,我正做另一个笔试呢,突然给我打电话开面 20分钟结束,一开始以为KPI,结果给过了 10月31日技术二…...

基于apache的http文件服务配置

背景: 公司的产品使用的第三方模组可以OTA,厂家提供的是window开启软件,这样就可以在本机做http下载服务器,然后使用端口映射的方式,公开到外网,这样就可以进行4G网络访问内网服务器了。但这个有个弊端&am…...

连铸工艺和模铸工艺有什么区别。

问题描述:连铸工艺和模铸工艺有什么区别。 问题解答: 连铸工艺和模铸工艺在多个方面存在显著差异: 指代不同: 模铸是成批大量生产锻件的锻造方法。连铸即为连续铸钢的锻造方法。 工艺不同: 模铸在锻压机械的作用…...

pyqt treeWidget树生成

生成treeWidget树与获取treeWidget树节点的数据 # encodingUTF-8 import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QApplication, QTreeWidgetItem, QLineEdit, QSpinBox, QComboBox from PyQt5.QtWidgets import QWidget from release_test import Ui_F…...

DataFunSummit:2023年云原生大数据峰会:核心内容与学习收获(附大会核心PPT下载)

随着数字化转型的深入推进,大数据技术已经成为企业获取竞争优势的关键因素之一。本次峰会汇聚了业界顶尖的大数据专家、企业领袖和技术精英,共同探讨云原生大数据领域的最新技术和趋势。本文将深入分析峰会的核心内容,并探讨参会者从中能学到…...

docker 容器添加指定网络地址

docker 容器添加指定网络地址 在搭建halo博客时,准备让 halo、mysql8.1、nginx 三个容器在同一个网段中,并指定IP。 实现docker内部容器之间网络互通。 查看容器网络信息命令 docker inspect 容器名各容器部署成功后网络效果如下: nginx …...

后端怎样防止重复提交订单?

参考文章 通常我们可以在前端通过防抖和节流来解决短时间内请求重复提交的问题, 如果因网络问题、Nginx重试机制、微服务Feign重试机制或者用户故意绕过前端防抖和节流设置,直接频繁发起请求,都会导致系统防重请求失败,甚至导致后…...

数据结构之二叉搜索树

二叉搜索树 满足条件: 1.对于根节点:左子树中所有节点的值小于右子树中所有节点的值 2.任意节点的左右子树也是二叉搜索树,同样满足条件1 二叉搜索树的常用操作 我们将二叉搜索树封装为一个类 BinarySearchTree ,并声明一个成员变…...

《设计模式的艺术》笔记 - 抽象工厂模式

介绍 提供了一个创建一系列相关或相互依赖的对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,它是一种对象创建型模式。 在抽象工厂模式中,每个具体工厂都提供了多个工厂方法用于产生多种不同类型的产品,这些产品构…...

7.11、Kali Linux中文版虚拟机安装运行教程

目录 一、资源下载准备工作 二、安装教程 三、kali linux换源 四、apt-get update 报错 一、资源下载准备工作 linux 中文版镜像历史版本下载:http://old.kali.org/kali-images/ 大家可以自行选择版本下载,本人下载的是2021版本 二、安装教程 打开vmvare wokst…...

Go+快速开始详细指南

Go快速开始 Go编程语言是为工程、STEM教育和数据科学设计的。 对于工程:用儿童能掌握的最简单的语言工作。对于STEM教育:学习一门可以在未来工作中使用的工程语言。对于数据科学:用同一种语言与工程师交流。 安装方法 现在,我们建议您从源代码安装Go。 注意:需…...

SQL:一行中存在任一指标就显示出来

当想要统计的两个指标不在一张表中时,需要做关联。但很多情况下,也没有办法保证其中一张表的维度是全的,用left join或right join可能会导致数据丢失。所以借助full join处理。 1)如,将下面的数据处理成表格中的效果&…...

【代码随想录06】454. 四数相加 II 383. 赎金信 15. 三数之和 18. 四数之和

目录 454. 四数相加 II题目描述做题思路参考代码 383. 赎金信题目描述做题思路参考代码 15. 三数之和题目描述参考代码 18. 四数之和题目描述参考代码 454. 四数相加 II 题目描述 给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你…...

NodeJs 第十五章 session

Session代表服务器和客户端一次会话的过程。 在计算机科学领域来说,尤其是在网络领域,会话(session)是一种持久网络协议,在用户(或用户代理)端和服务器端之间创建关联,从而起到交换数据包的作用机制,session在网络协议…...

JRTP实时音视频传输(1)-必做的环境搭建与demo测试

1.需求 1)支持协议自动切换。在网络优的情况下使用TCP、网络差的情况下使用UDP,满足实时音视频传输需求, 2)支持RTCP ,流量控制,阻塞控制等。需要能支持RTCP,这样便能在这个基础上,…...

腿部臀部训练

坐式蹬腿器 100kg,是器械的极限了,也差不多是我的极限,深蹲是40kg,应该还可以加点,大腿外扩器55kg,没有尝试能不能做更重的,羡慕健身房里面的好身材的同学,自己得好好练 1.21健身房关…...

windows系统下docker软件中使用ubuntu发行版本的linux系统

1.软件下载 官网下载地址 下载安装之后,再去微软商店下载wsl软件,可以直接用,或者也可以使用命令行拉取(下面会讲) 2.在docker里面创建容器的两种方法 2.1.命令行创建 前言:输入 winr 打开命令行进行下面…...

从零到一:用 LangChain 搭建你的第一个 AI Agent,让 LLM 自己干活!

导读:,2024年最火的不是大模型本身,而是基于大模型的 AI Agent。它能自主思考、调用工具、执行任务——不再是"你说一句我回一句"的聊天机器人,而是真正能帮你干活的数字员工。本文从零带你搭建一个完整的 AI Agent&…...

告别VMware网络冲突!CentOS Stream 9虚拟机静态IP配置保姆级避坑指南

CentOS Stream 9虚拟机静态IP配置终极排错手册当你在VMware中为CentOS Stream 9配置静态IP时,是否遇到过这些诡异现象:ip addr显示两个IP地址、网络时断时续、ping外网时通时不通?这背后隐藏着DHCP与静态IP的"权力斗争"。本文将带你…...

孩子学英语怎么选择

需要一点点建议哦...

荣耀出征官方下载地址|装备绑定与非绑定决策分析

认准奇迹mu:荣耀出征官方直营官网主站与认证入口体验正版游戏(资质可查,安全合规)《奇迹mu:荣耀出征》是合规申报的移动类型经典复刻怀旧奇迹mu手游,已经在《奇迹mu:荣耀出征》官网主站首发上线。游戏高度还…...

仓储海量货物人车混跑,无感定位并发能力碾压UWB上限瓶颈技术白皮书方案

仓储海量货物人车混跑,无感定位并发能力碾压UWB上限瓶颈技术白皮书方案一、方案概述随着现代智能仓储向高密度、高周转、无人化、集约化模式快速迭代,立体仓储库区普遍形成海量货物堆叠、多叉车穿梭、人员高频作业、人车密集混跑的复杂动态工况。仓储作业…...

211本科985硕拿下淘天AI二面!全程无代码,这面试题火了!

本文分享了作者在淘天AI应用开发二面中的面试经历,全程不到60分钟,没有手撕代码,也没有问常规Java八股。面试主要围绕自我介绍、AI相关问题、工程与安全问题、项目提问以及反问环节展开。AI相关问题涉及对AI的看法、常用AI工具等;…...

【AI Agent娱乐行业落地实战指南】:2024年头部平台已验证的7大爆款应用模型与避坑清单

更多请点击: https://intelliparadigm.com 第一章:AI Agent在娱乐行业的核心价值与演进趋势 AI Agent正从被动响应工具跃升为娱乐内容生态的主动协作者与智能策展者。其核心价值不仅体现在效率提升,更在于重构创意生产链路、深化用户参与机制…...

【滤波跟踪】基于EKF的视觉-惯性里程计(VIO)与KAZE特征匹配技术,通过摄像头和IMU数据来估计无人机的位置附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。🍎完整代码获取 定制创新 论文复现点击:Matlab科研工作室👇 关注我领取海量matlab电子书和数学建模资料 &#x1f3…...

为ClaudeCode配置Taotoken作为备用API解决访问限制

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为ClaudeCode配置Taotoken作为备用API解决访问限制 基础教程类,指导经常遇到ClaudeCode访问限制的开发者,如…...

Windows网络性能测试终极指南:iperf3完整下载与安装教程

Windows网络性能测试终极指南:iperf3完整下载与安装教程 【免费下载链接】iperf3-win-builds iperf3 binaries for Windows. Benchmark your network limits. 项目地址: https://gitcode.com/gh_mirrors/ip/iperf3-win-builds 还在为网络速度不稳定而烦恼吗&…...