利用LightHouse和LightDB实现零代码创建和管理API

利用LightHouse和LightDB实现零代码创建和管理API

前言

最近因业务需要创建可以对外查询的API来供其他人使用,但是本人纯小白一枚,不会写相关代码,非常苦恼。而且处于项目初期,没有太多的经费购买服务器,之前了解过服务器的购买流程,对我这种个人来说,真的是很贵了。直到我遇到了LightHouse和LightDB:轻量应用服务器和轻量艺应用数据库。非常适合我这种小白个人开发者,不仅价格实惠,性能也不比服务器差,而且带宽也很高。所以本次教程就用LightHouse和LightDB来进行演示。

DBApi

介绍

  • 快速生成数据库的http接口服务,零代码开发,只需编写sql,就可以生成http api服务。是数据库的上层应用,方便数据库数据对外发布http服务。

使用场景

  • BI报表、数据可视化大屏的后端接口快速开发;

  • 前端程序员快速开发后端接口进行接口联调;

  • 企业数据资产对外快速发布http服务及统一管理;

  • 企业数据接口的统一管理中心。

特点

  • 开箱即用,不需要编程,不需要依赖其他软件(只需要java运行环境)

  • 支持单机模式、集群模式;支持云原生容器化部署

  • 支持API级别的访问权限控制,支持IP白名单、黑名单控制

  • 支持所有类型数据库(JDBC连接方式),包括mysql/sqlserver/postgreSql/hive/oracle等等

  • 支持动态sql,类似mybatis的动态sql,支持sql编辑、运行、调试

  • 支持API结果缓存,支持缓存开启/关闭(通过插件实现)

  • 支持自定义代码逻辑的数据转换,比如数据脱敏(通过插件实现)

  • 支持API配置导入导出,方便测试环境到生产环境的API迁移

  • 支持一个接口内多条SQL执行(例如分页功能)

  • 支持页面上的API请求测试

项目地址:DBApi: 零代码开发api服务,只需编写sql,就可以生成http api服务。支持api动态创建,多数据源连接,动态添加数据源,兼容多种数据库。 适用于BI报表、数据可视化大屏的后端接口快速开发 (gitee.com)

开始安装

宝塔安装

首先,登录你购买服务器厂商的控制台,我这里用的是腾讯云轻量应用服务器,系统选择的是Centos7.6。

如果你你没有云服务器可以点击链接购买:

新用户优惠:https://curl.qcloud.com/9KXjqLTT

老用户抽奖代金券:https://curl.qcloud.com/vdUaMx2U

image-20220213100804144

找到你的服务器之后点击右上角的登录按钮(如果不喜欢这种方式登录可以选择自己喜欢的方式:putty,xshell,terminal 等等)当然如果选用其他方式记得先重置密码还在在购买的时候就创建密码,不然无法登录。

image-20220213101412208

输入管理员指令:sudo -i

image-20220213101617825

接下来输入命令安装宝塔

 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

PS:如果没有宝塔账户先去注册一下,注册链接:https://www.bt.cn/?invite_code=MV9obmppdmo=

安装成功后会看到下面的界面:

image-20220213102136068

接下来我们去防火墙开一下宝塔面板的8888端口:

image-20220213102422633

然后访问外网链接访问宝塔面板并输入账户密码登录,第一次登录会让你阅读协议并登录宝塔账户(就是刚才注册的)

image-20220213102748975

image-20220213102811156

选择LNMP一键安装,PHP版本可以选高一点。

image-20220213102935618

环境二选一安装

DBApi提供了本地和docker的两种安装方式,每种方式下又有单机版和集群版,因为我这里目前仅有一台轻量应用服务器,所以不做集群版演示,如果各位能赞助我一下,我可能就会出集群版的教程了[狗头]。

本地单机版教程

  • 依赖java环境,先自行在服务器安装jdk8+,并配置环境变量

我们打开宝塔,点击网站,选Java项目,如未安装jdk会提示安装。

image-20220416170440949

选择8版本点击安装。

image-20220416171249115

image-20220416173842053

  • 修改conf/application.properties文件中的以下配置

 # 失败告警邮件的发件人
 # email sender 
 spring.mail.host=smtp.163.com
 spring.mail.username=xxx@163.com
 spring.mail.password=xxx
 spring.mail.default-encoding=UTF-8
 
 # 数据源密码加密存储的密钥,至少8位字符
 # key used to encrypt the password of DataSource, at least 8 char
 dbapi.secret.key=12345678
 
 # api访问路径的统一根路径,example: http://192.168.xx.xx:8520/api/xxx
 # api context
 dbapi.api.context=api
 
 # 如果不修改数据库地址将默认使用自带的内嵌元数据库sqlite
 # meta database address
 spring.datasource.driver-class-name=org.sqlite.JDBC
 spring.datasource.url=jdbc:sqlite::resource:sqlite.db
 spring.datasource.username=
 spring.datasource.password=

image-20220416175832055

  • 如果配置了mysql作为元数据库,请先在mysql执行初始化脚本sql/ddl_mysql.sql

我这里没有配置,一会会在服务端使用轻量应用数据库。

  • Linux一键启停

 sh bin/dbapi-daemon.sh start standalone
 sh bin/dbapi-daemon.sh stop standalone

image-20220416180028217

  • 如果是windows操作系统请右键点击bin/dbapi.ps1文件,选择使用PowerShell运行

注意windows系统只支持standalone模式运行,不支持集群模式

  • 浏览器访问http://ip:8520进入UI

docker单机版教程

首先安装docker

image-20220416180549331

docker部署相对简单,所以现在搭建基本都用docker

Docker 容器通过环境变量进行配置,附录-环境变量列出了 DBApi 的可配置环境变量及其默认值

  • 一键启动(使用dbapi自带的元数据库sqlite)

 docker run -it -p 8520:8520 --name dbapi freakchicken/db-api:3.1.0 standalone

image-20220416181630393

  • 使用自己的mysql作为元数据库(启动前需要在mysql执行初始化脚本)

我这里没有使用,一会会在服务端使用轻量应用数据库。

 docker run -it 
 -p 8520:8520 
 -e DB_URL="jdbc:mysql://192.168.xx.xx:3306/dbapi?useSSL=false&characterEncoding=UTF-8&serverTimezone=GMT%2B8" 
 -e DB_USERNAME="root" 
 -e DB_PASSWORD="root" 
 -e DB_DRIVER="com.mysql.cj.jdbc.Driver" 
 freakchicken/db-api:3.1.0 standalone
  • 浏览器访问http://ip:8520进入UI

界面预览和使用

image-20220416181759182

默认账号/密码:admin/admin

image-20220416181846020

image-20220416181909678

image-20220416182110045

image-20220416182308219

image-20220416182345049

image-20220416182437911

附录

环境变量

Docker部署的时候通过以下环境变量来传递参数

环境变量 默认值 说明
MAIL_HOST smtp.163.com 失败告警的邮件发件人
MAIL_USERNAME dbapi_test@163.com 失败告警的邮件发件人账户
MAIL_PASSWORD WGJQBFRIPUENHMUP 失败告警的邮件发件人密码
SECRET_KEY 12345678 数据源密码加密存储的密钥,至少8位字符
API_CONTEXT api 所有API的统一根路径
DB_URL jdbc:sqlite::resource:sqlite.db 元数据库地址
DB_USERNAME 元数据库账户
DB_PASSWORD 元数据库密码
DB_DRIVER org.sqlite.JDBC 元数据库地址jdbc驱动
NACOS_ADDRESS 127.0.0.1:8848 集群模式使用的nacos地址
NACOS_USERNAME nacos 集群模式使用的nacos账户
NACOS_PASSWORD nacos 集群模式使用的nacos密码
NACOS_NAMESPACE public 集群模式使用的nacos namespace

本文来自开发者投稿,不代表腾讯云立场,转载请注明出处:https://computeinit.com/archives/7459

(0)
上一篇 2022年5月21日 21:17
下一篇 2022年5月21日 21:18

猜你喜欢

发表评论

登录后才能评论
交流群