这篇文章上次修改于 682 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

设计方案
为了实现动态发布REST API,我们做了大量的方案调研:

参考BI工具,后端使用统一的服务接口,通过正则表达式匹配URL请求,实现伪动态发布REST API;
将界面操作封装为JSON,将JSON转换为SQL组装,后端使用统一的服务接口,实现伪动态发布REST API;类似开源apijson[3];
利用动态Java编译、反射动态生成REST API服务代码(类似开源JCoder)[4],通过DevOPS动态部署;
利用GraphQL[5],将数据组装任务交给数据应用方;开源项目:grafbase
利用DataQL[6]图形引导界面,通过SQL语句直接将数据返回给前端[7];相关开源项目Hasor[8] ;
业界思路;个推《亿级数据服务化平台的建设与发展》[9] ;
Serverless/Faas框架
商业工具Stoplight[10],Dataiku,DreamFactory
通过cli发布SQL为api服务,支持KNative及OpenFaas。[11]
pgapi [12]
magic-api[13]
rocket-api[14]
数据服务化架构设计[15]
在线数据服务网关设计[16]
roapi:将任意数据库转化为API接口,无须一行代码[17]
方案分析,实现数据数据,动态发布REST API数据服务,需求解决一下技术问题:

通过Web界面编写脚本代码及配置Endpoint(REST API的URL)
将SQL、Python、Java等脚本代码动态编译为REST API可执行程序
动态加载REST API可执行程序及发布为REST API服务
与API网关无缝集成,支持限流、鉴权、审计、注册、版本等能力1820
参考
^Dataworks数据服务 https://help.aliyun.com/document_detail/73263.html
^Dataphin数据服务 https://yq.aliyun.com/articles/726132
^APIJSON https://gitee.com/TommyLemon/APIJSON/
^利用Jcoder动态发布REST服务 https://www.jianshu.com/p/1fcf5327107a
^GraphQL https://graphql.org
^Dataway https://www.hasor.net/web/dataway/index.html
^Springboot实现服务发布 https://mp.weixin.qq.com/s/pe7xllvAGohpMI-8HeCHTg
^Hasor https://gitee.com/zycgit/hasor
^《亿级数据服务化平台的建设与发展》PPT下载地址 https://archsummit.infoq.cn/2019/beijing/schedule
^stoplight开源 https://stoplight.io/open-source/spectral/
^octo-cli https://github.com/octoproject/octo-cli
^pgapi https://github.com/thrinz/pgapi
^magic-api https://github.com/ssssssss-team/magic-api
^rocket-api https://gitee.com/alenfive/rocket-api
^数据服务化架构 https://zhuanlan.zhihu.com/p/106319134
^在线数据服务网关设计 https://ordiychen.github.io/ordiychen.github.io/posts/grpc-gateway/
^17 https://github.com/roapi/roapi
^OpenAPI https://www.openapis.org/
^openapi 规范 https://github.com/OAI/OpenAPI-Specification
^openapi 工具 https://openapi-generator.tech/
^openapi规范 https://github.com/OAI/OpenAPI-Specification
编辑于 2023-12-17 17:57・IP 属地广东
文章被以下专栏收录
数据中台
数据中台
本专栏介绍基于开源项目实现数据中台的思路
https://zhuanlan.zhihu.com/p/137643229?utm_id=0