数据服务 开源方案技术选型

Posted 终回首

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据服务 开源方案技术选型相关的知识,希望对你有一定的参考价值。

一、数据服务简介

笔者认为数据中台应该具备以下能力:

  1. 获取数据
  2. 处理数据
  3. 分享数据
  4. 展示数据

数据服务对应的是分享数据的能力。

数据服务的能力体现为,通过配置的而不是编码的方式将已有数据发布成接口,供数据需求者调用。

为什么要用数据服务?
为了减少开发周期,提升开发效率。

二、开源方案介绍

介绍不分先后,只是简单介绍

1 Rocket-API

Rocket-API 基于spring boot 的API敏捷开发框架,服务端50%以上的功能只需要写SQL或者 mongodb原始执行脚本就能完成开发,另外30%也在不停的完善公共组件,比如文件上传,下载,导出,预览,分页等等通过一二行代码也能完成开发,剩下的20%也能依赖于动态编译技术生成class的形式,不需要发布部署,不需要重启来实现研发团队的快速编码,提测以及回归。

开源公司:
无公司,个人开源

项目地址:
https://gitee.com/alenfive/rocket-api#https://graphql.cn/

2 Magic-API

magic-api 是一个基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口,无需定义Controller、Service、Dao、Mapper、XML、VO等Java对象即可完成常见的HTTP API接口开发

开源公司:
无公司,个人开源

项目地址:
https://gitee.com/ssssssss-team/magic-api

3 Dataway

Dataway 是基于 DataQL 服务聚合能力,为应用提供的一个接口配置工具。使得使用者无需开发任何代码就配置一个满足需求的接口。整个接口配置、测试、冒烟、发布。一站式都通过 Dataway 提供的 UI 界面完成。UI 会以 Jar 包方式提供并集成到应用中并和应用共享同一个 http 端口,应用无需单独为 Dataway 开辟新的管理端口。这种内嵌集成方式模式的优点是,可以使得大部分老项目都可以在无侵入的情况下直接应用 Dataway。进而改进老项目的迭代效率,大大减少企业项目研发成本。

开源公司:
新东方

项目地址:
https://github.com/ClouGence/hasor.git

4 APIjson

提供通用接口,大部分API不用再写自动生成文档,不用再编写和维护自动管理权限和版本、自动防SQL注入开放API无需划分版本,始终保持兼容支持增删改查、模糊搜索、正则匹配等。

开源公司:
腾讯

项目地址:
https://gitee.com/Tencent/APIJSON

5 Graphql

GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。 GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容易地随着时间推移而演进,还能用于构建强大的开发者工具。

开源公司:
Facebook

项目地址:
https://github.com/graphql

三、详细对比

详细对比各开源项目的各种维度,如果项目既发布在github又发布在gitee,则选择数值更优秀的。

涉及到打分的满分10分,分数较为主观,仅供参考。

对比项Rocket-APIMagic-APIDatawayAPIjsonGraphql
第一个稳定版发布时间2020-06-162021-03-282015-07-032017-04-302015-10
仓库 watch/star/fork109/827/224134/750/23963/777/225557/3.2k/694538/13.3k/1.1k/
开发语言Java/javascriptJava/VueJava/VueJavaTypeScript/JavaScript
文档完善度77388
易用度87595
使用场景替代CRUD,减少开发成本替代CRUD,减少开发成本场景和Graphql相同apijson的定位是解决小公司、团队及个人开发者产品快速上线,在这里忽略了后端,只需要后端按照设计要求建立相关对象之后,前端就可以直接通过apijson这里的规范直接调用。有多个接口需要查询有可能有交集也有可能没有交集的数据时,后端只需要一个API可以查询到数据全集,Graphql可以自动完成数据解析,封装,过滤操作。从而实现两个接口的需求 。
是否需要写后端代码truetruetruefalsetrue

四、推荐度

推荐度,排名从高到低。

根据以下维度:文档、是否简单、是否需要编码、开发语言是否适合我司、是否是大厂

  1. APIjson
    理由:1 文档完善 2 大厂背书 3 无需编码 4 语言适合我司,二次开发方便 5 使用简便
  2. Rocket-API
    理由:1 文档完善 2 编码较少 3 使用较为简便 4 语言适合我司,二次开发方便
  3. Magic-API
    理由:1 文档较为完善 2 编码较少 3 使用较为简便 4 语言适合我司,二次开发方便
  4. Dataway
    理由:1 文档较为完善 2 场景不适合
  5. Graphql
    理由:1 文档完善 2 大厂背书 3 场景不合适

这里的排名是根据需求定的,不同的项目需求场景不同,排名仅供参考!

PS:有误之处,请不吝赐教!

以上是关于数据服务 开源方案技术选型的主要内容,如果未能解决你的问题,请参考以下文章

[新星计划]一文快速了解Elastic Search 开源搜索引擎(技术选型+启动命令)

技术选型看这里|微服务架构下该如何技术选型?建议收藏

布道微服务_11监控系统选型与常见方案

布道微服务_11监控系统选型与常见方案

分布式系统架构中高可用方案技术选型:Hystrix 框架实现服务保护使用详解

技术选型总结