自研的MySQL Rest Data Service(MRDS)
admin
2024-04-01 00:24:47
0

开发了一个小系统,命名为MySQL Rest Data Service(简称:MRDS)。MRDS的主要功能是针对MySQL数据中的表,自动公开CRUD的Rest API服务。

我们只需要在数据库中创建好表后,通过MRDS就可以公开自动该表的CRUD Rest API了。包括以下Rest API,

  • 根据主键获取某表单条记录::
    • 方法:GET
    • Endpoint: HOST_IP:PORT/rest///{id}
  • 获取某表全量:
    • 方法:GET
    • Endpoint:HOST_IP:PORT/rest//
  • 向某表中插入单条数据:
    • 方法:POST
    • Endpoint:HOST_IP:PORT/rest//
  • 向某表中插入多条数据:
    • 方法:POST
    • Endpoint:HOST_IP:PORT/rest///bulk
  • 更新某表中的单条数据:
    • 方法:PUT
    • Endpoint: HOST_IP:PORT/rest///{id}
  • 删除某表中的单条数据:
    • 方法:DELETE
    • Endpoint:HOST_IP:PORT/rest///{id}

接下来,让我们体验一下MRDS的基本功能,

  1. 启动一个MySQL数据库,
docker run --name mysql -e MYSQL_ROOT_PASSWORD=oracle -p 3306:3306 -d mysql:8.0.31
  1. 启动MRDS,连接上面的MySQL数据库,
docker run --name mrds  --rm -p 8080:8080 --link mysql:mysql -e MYSQL_USERNAME=root -e MYSQL_PASSWORD=oracle -e MYSQL_URL=jdbc:mysql://mysql:3306/mysql atjapan2015/mrds:0.0.1
  1. 创建测试表和导入数据,
    创建sql文件,
cat <<"EOF" > db.sql
CREATE TABLE `region` (`id` varchar(100) NOT NULL,`region_id` varchar(100) NOT NULL,`region_name` varchar(200) NOT NULL,PRIMARY KEY (`id`)
);INSERT INTO `region` (`id`, `region_id`, `region_name`) VALUES ("ap-melbourne-1", "ap-melbourne-1", "オーストラリア南東部(メルボルン)");
INSERT INTO `region` (`id`, `region_id`, `region_name`) VALUES ("ap-osaka-1", "ap-osaka-1", "日本中央部(大阪)");
INSERT INTO `region` (`id`, `region_id`, `region_name`) VALUES ("ap-sydney-1", "ap-sydney-1", "オーストラリア東部(シドニー)");
INSERT INTO `region` (`id`, `region_id`, `region_name`) VALUES ("ap-tokyo-1", "ap-tokyo-1", "日本東部(東京)");
INSERT INTO `region` (`id`, `region_id`, `region_name`) VALUES ("sa-saopaulo-1", "sa-saopaulo-1", "ブラジル東部(サンパウロ)");COMMIT;
EOF

导入数据,

docker exec -i mysql mysql -uroot -poracle -c --default-character-set=utf8 mysql < db.sql
  1. 使用curl体验MRDS的基本功能,
  • 获取region表的单条数据,
curl localhost:8080/rest/mysql/region/ap-tokyo-1

输出如下,

{"id":"ap-tokyo-1","region_name":"日本東部(東京)","region_id":"ap-tokyo-1"}
  • 获取region表的全量数据,
curl localhost:8080/rest/mysql/region

输出如下,

[{"id":"ap-melbourne-1","region_name":"オーストラリア南東部(メルボルン)","region_id":"ap-melbourne-1"},{"id":"ap-osaka-1","region_name":"日本中央部(大阪)","region_id":"ap-osaka-1"},{"id":"ap-sydney-1","region_name":"オーストラリア東部(シドニー)","region_id":"ap-sydney-1"},{"id":"ap-tokyo-1","region_name":"日本東部(東京)","region_id":"ap-tokyo-1"},{"id":"sa-saopaulo-1","region_name":"ブラジル東部(サンパウロ)","region_id":"sa-saopaulo-1"}]
  • 向region表中插入单条数据
curl -X POST -H 'Content-Type: application/json' -d '{"id":"ap-chunchoeu-1","region_name":"韩国春川1","region_id":"ap-chunchoeu-1"}' localhost:8080/rest/mysql/region

确认数据正常插入,

curl localhost:8080/rest/mysql/region/ap-chunchoeu-1

输出结果如下,

{"id":"ap-chunchoeu-1","region_name":"韩国春川1","region_id":"ap-chunchoeu-1"}
  • 向region表中插入多条数据,
curl -X POST -H 'Content-Type: application/json' -d '[{"id":"ap-chunchoeu-2","region_name":"韩国春川2","region_id":"ap-chunchoeu-2"}, {"id":"ap-chunchoeu-3","region_name":"韩国春川3","region_id":"ap-chunchoeu-3"}]' localhost:8080/rest/mysql/region/bulk
  • 更新region表中的单条数据,
curl -X PUT -H 'Content-Type: application/json' -d '{"id":"ap-chunchoeu-1","region_name":"更新后韩国春川1","region_id":"ap-chunchoeu-1"}' localhost:8080/rest/mysql/region/ap-chunchoeu-1
  • 删除region表中的单条数据,
curl -X DELETE localhost:8080/rest/mysql/region/ap-chunchoeu-1

完结!

相关内容

热门资讯

长鑫科技下周一上市,发行价为8... 来源:@财联社APP微博 财联社7月23日讯,今日晚间,长鑫科技今日发布公告称,公司股票将于2026...
数字人民币开启从“可用”到“好... 证券时报记者 李颖超 当钱包开立规模持续扩容、试点版图不断铺开之后,数字人民币开始尝试切换发展逻辑。...
收评:超4200只个股上涨!电... 每经编辑:彭水萍 7月23日,A股全天走出缩量修复行情,三大指数小幅收红,盘面黄白线分化明显,中小盘...
商务部:将加快修订出台关于外国... 【大河财立方消息】7月23日,国务院新闻办公室举行新闻发布会,介绍2026年上半年商务工作及运行情况...
「AI新世代」智谱算力出鞘:1... 本报(chinatimes.net.cn)记者石飞月 北京报道 这段时间,智谱的股价经历了一番大起大...
刚刚,封死涨停!16.8亿抢筹... 调整已久的碳酸锂火了! 7月23日,锂矿概念持续走强,*ST威领、川能动力、盛新锂能、永杉锂业、国城...
原创 家... 家庭存款高于多少,才算是国内富裕家庭?社会各界看法不一。有人觉得在国内存款超过1000万,才算是富裕...
事关外贸、消费、新能源等领域 ... 商务部今天发布2026年上半年商务工作及运行情况。 商务部副部长鄢东介绍,上半年商务发展总体情况,...
专访美联储前高级经济学家胡捷 每经记者|周逸斐 每经编辑|廖 丹 法国经济预期增长从0.9%下调为0.6%;德国从0.8%下调为0...
90后接盘清北顶流,仅当3个月... *此图由AI生成 作者| 史大郎&猫哥 来源| 是史大郎&大猫财经Pro 今天讲一个非常生猛的资本游...
罕见反超,GDP十强省份又变了 各省份经济半年报陆续公布,备受关注的十强卡位战正式迎来变局。 今年上半年,安徽以27370亿元GDP...
ETF热门榜:中证短融相关ET... 2026年7月22日,非货币类ETF合计成交5510.77亿元,其中有103只ETF成交额破10亿元...
中国银行 :完成发行300亿元... 中国银行发布公告,公司于2026年7月20日在全国银行间债券市场发行减记型无固定期限资本债券,并于2...
中国真的是五省三市养活全国吗? 近几年,网上流传了一个说法,叫“五省三市养全国”。 简单来说,就是2022年,全国仅广东、江苏、浙江...
摩通:华尔街银行业绩强劲提振欧... 观点网讯:7月22日,华尔街大型银行第二季度业绩表现强劲,提振了市场对欧洲投资银行即将开启的财报季的...
广州拟推动房地产纾困和发展 引... 观点网讯:7月22日,“十五五”时期,广州拟切实推动房地产纾困和发展,引导房地产市场企业转型升级。 ...
AI投入成“无底洞”?谷歌资本... 隔夜美股三大指数集体收低,道琼斯工业指数下跌0.01%报52218.58点,标普500指数跌0.14...
新太空经济从“起势”迈向“成势... 当前,全球正处于新一轮科技革命和产业变革加速演进的关键节点,人工智能、合成生物学、固态电池、高端算力...
金价四连涨,水贝又挤满人 每经记者:赵景致 每经编辑:何小桃,廖丹 记者|赵景致 编辑|何小桃 廖丹杜恒峰校对|金冥羽 金价在...
专访微亿智造董事长张志琦:在“... 本报(chinatimes.net.cn)记者石飞月 上海报道 在刚刚过去的2026世界人工智能大会...