Skip to content

SQL映射接口服务,只需要写sql语句即可自动生成后台接口

License

Notifications You must be signed in to change notification settings

Verlif/just-data

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Just Data

数据库接口映射服务

本质上是通过SQL来生成后台接口。与代码生成不同,Just-data不会生成任何代码,只会解析SQL语句来生成接口对象。

并且Just-data的目标是成为一个中间服务,以加载XML配置的方式来生成接口,服务于

只需要配置XML文件即可添加访问数据库的后端接口,只需要会写SQL即可完成后端接口搭建。

特点

  • 通过XML文件生成后台接口,无需重启即可动态修改接口。
  • 通过配置完成登录、登出与接口权限控制。
  • 数据库无关性,登录与权限都由使用者自己决定。
  • 支持多数据源同时连接。
  • 轻量,不需要安装、占用资源小。
  • 快速,启动快、接口响应快。

工作原理

基本原理就是解析XML文件,获取需要连接的数据库和需要创建的接口信息。通过服务内置的解析器与映射器来完成接口生成工作。

快速开始

  1. 根据 模板 创建操作项 XML配置文件
  2. 添加所使用的数据库驱动文件,并在application.ymldrivers中配置 驱动名驱动文件路径
  3. 修改application.yml中的items.path,指向创建的 XML配置文件 或其 文件夹
  4. 启动just-data.jar
  5. 通过IP:PORT/api/{label}/{api}访问创建的接口。

TODO

  • 基础操作项加载

  • 接口权限控制

  • 接口日志

  • 支持多种数据库

    目前使用的是jdbc方式加载外置驱动文件,所以理论上支持所有的jdbc方式的数据库。

  • 同时连接多个数据源

  • 外置驱动文件,减少程序大小

  • RSA加密支持

  • 动态更新操作项配置

  • API列表展示更多的信息

  • 文件上传与下载

  • 支持SQL语句流(开启事务)

  • 支持动态SQL语句

    • if
    • where
    • foreach
    • trim
  • SQL变量参数防注入

  • 支持外置jar包拓展

  • 数据库操作项自动生成

  • 更自由的文本自定义

  • 指令API

配置

Just-data的配置基于SpringBoot,目前有两个配置文件:

  • application.yml - 总配置文件
  • message.properties - 语言文本文件

语言文件

语言文件默认是i18n\message.properties,可以通过spring.messages.basename修改。

Station配置

延续了Station的配置,包括了以下组件配置:

JustData配置

just-data:
  macro:
    # 全局变量文件路径
    file: config\macro.properties
    # 是否在文件变动后自动重载文件内容
    autoReload: true
    # 自动重载判定间隔时长,单位毫秒
    period: 2000
  # 需要加载的数据库驱动列表
  drivers:
    # 驱动名
    - driverName: com.mysql.cj.jdbc.Driver
      # 驱动文件地址
      driverFile: drivers\mysql-connector-java-8.0.27.jar
  # SQL配置
  sql:
    # 是否输出到控制台(true - 输出到控制台;false - 不输出)
    print: true
  # 接口日志处理
  api-log:
    # 日志类型(FILE - 写入文件;CONSOLE - 输出到控制台;XML - 通过xml配置写入数据库)(启用多个类型以“,”隔开,置为空则不启用接口日志)
    type: FILE, XML
    # 日志文件配置
    file:
      # 当日志类型为FILE时生效,表示写入的文件路径
      log: log\api-log.log
      # 当日志类型为XML时生效,表示读取的XML配置文件的路径
      xml: src\test\java\resources\log\log.xml
  # Token配置
  token:
    # 解析的请求header参数名
    header: Token
    # Token生成使用的密钥
    secret: qwertyuioplkjhgfdsazxcvbnm
    # Token有效期,也表示了登录token空闲时的存活时间。单位为秒
    expireTime: 3600
  # 操作项配置
  items:
    # 操作项配置文件路径
    path: src\test\java\resources\one
    # 是否在文件变动后自动重载操作项文件
    autoReload: true
    # 自动重载判定间隔时长,单位毫秒
    period: 5000
  # 接口异常配置
  exception:
    # 接口异常输出方式(CONSOLE - 控制台;FILE - 独立文件;CLIENT - 客户端),多个方式以“,”隔开
    output: CONSOLE
    # 当output中存在FILE时生效
    file: log\exception.log
  # 文件系统配置
  file:
    # 是否开启文件系统
    enabled: true
    # 使用文件系统时是否需要登录
    needOnline: false
    # 文件上传模式,决定了上传文件的存储模式(DAY - 按照日期建立文件夹;MONTH - 按照月份建立文件夹;ID - 根据登录用户ID建立文件夹)
    uploadType: ID
    # 文件操作模式,控制用户的文件管理权限(ID - 只允许用户操作自己的ID文件域文件,配合uploadType(ID)使用;ALL - 无限制)
    downloadType: ID
  # 登录配置
  login:
    # 登录配置的xml地址
    file: src\test\java\resources\login.xml
  # 权限服务配置
  permission:
    # 权限配置的xml地址
    file: src\test\java\resources\permission.xml

注:

  • 可以通过spring.redis.enabled=true将内存缓存模式替换为redis缓存。

About

SQL映射接口服务,只需要写sql语句即可自动生成后台接口

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages