前言
最近因业务需要创建可以对外查询的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。
找到你的服务器之后点击右上角的登录按钮(如果不喜欢这种方式登录可以选择自己喜欢的方式:putty,xshell,terminal 等等)当然如果选用其他方式记得先重置密码还在在购买的时候就创建密码,不然无法登录。
输入管理员指令:sudo -i
接下来输入命令安装宝塔
代码语言:shell复制yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
PS:如果没有宝塔账户先去注册一下
安装成功后会看到下面的界面:
接下来我们去防火墙开一下宝塔面板的8888端口:
然后访问外网链接访问宝塔面板并输入账户密码登录,第一次登录会让你阅读协议并登录宝塔账户(就是刚才注册的)
选择LNMP一键安装,PHP版本可以选高一点。
环境二选一安装
DBApi提供了本地和docker的两种安装方式,每种方式下又有单机版和集群版,因为我这里目前仅有一台轻量应用服务器,所以不做集群版演示,如果各位能赞助我一下,我可能就会出集群版的教程了狗头。
本地单机版教程
- 依赖java环境,先自行在服务器安装
jdk8
,并配置环境变量
我们打开宝塔,点击网站,选Java项目,如未安装jdk会提示安装。
选择8版本点击安装。
- 下载安装包解压到需要安装的目录下载链接
- 修改
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=
- 如果配置了mysql作为元数据库,请先在mysql执行初始化脚本
sql/ddl_mysql.sql
我这里没有配置,一会会在服务端使用轻量应用数据库。
- Linux一键启停
sh bin/dbapi-daemon.sh start standalone
sh bin/dbapi-daemon.sh stop standalone
- 如果是windows操作系统请右键点击
bin/dbapi.ps1
文件,选择使用PowerShell运行
注意windows系统只支持standalone模式运行,不支持集群模式
- 浏览器访问
http://ip:8520
进入UI
docker单机版教程
首先安装docker
docker部署相对简单,所以现在搭建基本都用docker
Docker 容器通过环境变量进行配置,附录-环境变量列出了
DBApi
的可配置环境变量及其默认值
- 一键启动(使用dbapi自带的元数据库sqlite)
docker run -it -p 8520:8520 --name dbapi freakchicken/db-api:3.1.0 standalone
- 使用自己的mysql作为元数据库(启动前需要在mysql执行初始化脚本)
我这里没有使用,一会会在服务端使用轻量应用数据库。
代码语言:txt复制docker run -it
-p 8520:8520
-e DB_URL="jdbc:mysql://192.168.xx.xx:3306/dbapi?useSSL=false&characterEncoding=UTF-8&serverTimezone=GMT+8"
-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
界面预览和使用
默认账号/密码:admin/admin
附录
环境变量
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 |