IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 不用写代码就可以创建HTTP API,开源项目DBAPI推荐 -> 正文阅读

[网络协议]不用写代码就可以创建HTTP API,开源项目DBAPI推荐

背景

  • 在互联网业务开发中,其实有很多时候HTTP接口的逻辑就是sql执行,典型场景比如报表系统,报表的api逻辑就只是sql执行而已,但是我们开发起来要写很多代码
  • 以java springboot项目为例,要写controller、service、mapper、entity、domain、dto,其实写这些代码都是重复性的工作,有没有办法可以只写sql就自动生成http协议的API呢?今天推荐一个开源项目就是做这个事的

开源地址: https://gitee.com/freakchicken/db-api

使用介绍

  • 只需要填写sql,和接口对应的地址和参数,选择DB地址,就可以生成接口

  • 同时还支持接口的分组管理

  • 支持接口的权限控制,只需要创建token,并给token授权可以访问哪些API

    • 还可以在页面上直接进行API访问测试
  • 有人会说,我的项目不是报表系统,API内容不只是sql执行,还要用代码对数据做一些其他转换,比如字段加密脱敏,那怎么办?

    不要急,DBAPI支持数据转换插件,通用的逻辑可以写成插件,只需要在API上配置插件信息就可以,以后API每次被访问的时候就会执行插件中的加密转换。

    具体可以查看插件开发文档

  • 又有人说了,我的项目代码哪有这么简单,每个接口里的逻辑都不一样,那DBAPI有什么用?

    仍然有用,使用 dbApi-spring-boot-starter框架可以把DBAPI集成进你自己的springboot项目,你的复杂API继续写你的代码(controller、service、mapper、dto、entity)。对于sql执行类的简单API,你就可以只用在xml中写sql和数据源地址就够了,大大降低代码量。

进阶功能

缓存

  • 对于报表业务而言,sql查询结果进行缓存也是一个常用的功能,DBAPI通过缓存插件来支持
  • 你可以自己编写缓存插件,将数据写入mangoDB/es/redis等等,非常灵活。
  • 你可以为每个API单独指定缓存插件,比如有的API查询结果我想缓存到redis,有的API查询结果我想缓存到es,有的想缓存一小时,有的想永久缓存,都可以通过指定不同的缓存插件来实现
    具体可以查看插件开发文档

动态sql

  • DBAPI支持类似mybatis的动态sql语法,同时可以在页面上方便的调试sql,包括调试动态sql

建立企业级数据接口中心的思考

  • 对一个程序员而言,DBAPI只是一个低代码开发工具,而对于一个企业而言,DBAPI能做更大的事——建立企业级的数据接口中心

  • 比如一个企业,有成千上万个数据查询的接口,一个接口内的sql几千甚至上万行,业务非常复杂,其中有的sql经手了五六个人的改造(因为人员离职、换岗)。这些接口的管理就会产生一些复杂的问题。

    1.新入职的员工接手了一个报表开发,有个数据查询的sql假设几千行,自己开发可能要好几天,但事实上已经有前人开发过了,可以复用,那去哪里查询这个接口呢?去代码里一行行找吗?如果代码没有注释怎么找?

    2.原先的报表使用某个报表工具(比如帆软)开发,现在想换个工具,或者想自己重新写前端页面开发,那之前在帆软里写好的sql就要一个个复制过来,重新写到后端接口代码里,还要改造sql,去除帆软里一些特有的语法,多麻烦。

    3.原先有的数据查询接口开放给了A部门的某个软件系统,后来A部门被拆分,要对该软件系统取消授权,并进行新的授权,如何在不改动代码的情况下进行?

    4.新的部门现在要新开发软件系统B、软件系统C,BC都要调用一些数据查询接口,而这些sql非常复杂,只有业务部门的人会写,而且开发周期很长,对于这样的sql查询接口是否可以放在一个可查询的地方,供其他软件系统专门调用?

  • 基于以上问题,作者认为企业是非常有必要建立自己统一的数据接口中心(注意不是数据中心)。推荐把数据查询sql封装成接口统一管理,每个接口的功能是什么?参数是什么?都可以方便的搜索到。如果哪个业务系统想调用,只需要申请token,并对token授权访问相应的接口。同时还可以一键导出接口文档给申请方。这种统一管理的思想会极大的降低企业内部的重复工作,并且保证数据使用的准确性。

  • 当然这一切都是针对企业内部的数据业务极其复杂的情况下。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-10-03 17:24:00  更:2021-10-03 17:24:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年6日历 -2024/6/29 18:09:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码