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

文章目录

  • 一、数据服务简介
  • 二、开源方案介绍
    • 1 Rocket-API
    • 2 Magic-API
    • 3 Dataway
    • 4 APIjson
    • 5 Graphql
  • 三、详细对比
  • 四、推荐度

一、数据服务简介

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

  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-API Magic-API Dataway APIjson Graphql
第一个稳定版发布时间 2020-06-16 2021-03-28 2015-07-03 2017-04-30 2015-10
仓库 watch/star/fork 109/827/224 134/750/239 63/777/225 363/11.2k/1.4k 538/13.3k/1.1k/
开发语言 Java/JavaScript Java/Vue Java/Vue Java TypeScript/JavaScript
文档完善度 7 7 3 8 8
易用度 8 7 5 9 5
使用场景 替代CRUD,减少开发成本 替代CRUD,减少开发成本 场景和Graphql相同 apijson的定位是解决小公司、团队及个人开发者产品快速上线,在这里忽略了后端,只需要后端按照设计要求建立相关对象之后,前端就可以直接通过apijson这里的规范直接调用。 有多个接口需要查询有可能有交集也有可能没有交集的数据时,后端只需要一个API可以查询到数据全集,Graphql可以自动完成数据解析,封装,过滤操作。从而实现两个接口的需求 。
是否需要写后端代码 true true true false true

四、推荐度

推荐度,排名从高到低。

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

  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:有误之处,请不吝赐教!

你可能感兴趣的:(大数据,数据中台,数据服务,Daas)