开发技术选型
English

APIJSON 评测:18K Star 的零代码 ORM,后端不写接口也能跑

评测 Tencent/APIJSON 仓库,一个支持零代码生成接口和文档的实时 ORM 库,Java 编写,18K+ Stars,腾讯出品。

APIJSONJavaORM零代码低代码后端开发CRUD腾讯

广告

APIJSON 评测:18K Star 的零代码 ORM,后端不写接口也能跑

我第一次看到 APIJSON 的宣传语时,内心是拒绝的。「后端接口和文档零代码」,这听起来像那种 PPT 产品的吹牛话术。但一看是腾讯开源的,star 数还 18000 多,我决定花半天时间试试。

这项目到底是干嘛的

简单说,APIJSON 是一个 Java 写的 ORM 库。它的核心思路是:前端直接通过 JSON 来描述要什么数据,后端不用写 Controller、不用写 Service、甚至不用写 SQL,框架自己把 JSON 翻译成查询并返回结果。

听起来很激进对吧?但它支持的查询能力相当全面:单表查询、多表关联、聚合统计、子查询、甚至复杂嵌套都能搞定。而且自动生成的文档是跟着代码走的,不用额外维护 Swagger。

项目从 2016 年就开始维护了,到现在快 10 年,算是经过时间考验的。

核心功能

零代码 CRUD

这是它最大的卖点。部署完 APIJSON 的后端工程后,前端直接发这样的 JSON:

{
  "User": {
    "id": 1
  }
}

就能拿到 id 为 1 的用户数据。想联查?加字段就行:

{
  "User": {
    "id": 1,
    "Moment[]": {
      "Moment": {
        "userId@": "/User/id"
      }
      }
  }
}

这种写法确实需要学一下,但熟练之后比写 SQL 快多了。

自动文档

每次改表结构,接口文档自动更新。不用再担心”接口改了文档没改”这种尴尬。它生成的文档格式跟 Swagger 类似,可以直接在浏览器里测试。

多数据源支持

MySQL、PostgreSQL、Oracle、SQL Server、ClickHouse、TiDB、Snowflake……支持的数据库有二十多种。我试了 MySQL 和 PostgreSQL,基本没遇到兼容问题。

安全机制

它有一套自己的权限控制模型,可以配置哪些表能查、哪些字段能返回、甚至能限制单次查询的最大条数。对于”前端直接查数据库”这种模式来说,安全设计确实很重要。

实际使用场景

后台管理系统:这种项目 80% 的接口都是 CRUD,用 APIJSON 能省大量样板代码。

原型验证:产品idea刚出来,需要快速搭个能跑的后端,APIJSON 可以让你几小时就搭出完整的 API。

数据看板:配合它的聚合查询能力,前端可以直接请求统计结果,不用后端专门写报表接口。

快速上手

直接 clone 它的 Demo 项目:

git clone https://github.com/Tencent/APIJSON.git

用 Maven 编译后运行,数据库配好连接就能用。官方文档里有详细的 Spring Boot 集成教程,大概 10 分钟能跑起来第一个接口。

优缺点分析

优点:

  • 真的能减少大量重复的后端代码
  • 文档自动生成,维护成本极低
  • 查询能力超预期,复杂关联也能处理
  • 多数据库支持很全面
  • 腾讯背书,社区活跃度不错

缺点:

  • 学习曲线陡峭,JSON 查询语法需要时间适应
  • 调试困难,JSON 写错了报错信息有时候不够直观
  • 性能方面,复杂查询可能会生成低效的 SQL
  • 团队接受度是个问题,很多后端同学对这种”前端指挥后端”的模式有抵触
  • 我只在小项目里用过,大规模生产环境的表现没有亲自验证

适合谁用

  • 想快速搭原型的独立开发者
  • 后台管理系统开发频繁的团队
  • 后端人手不足、需要前端分担接口开发的情况
  • 想减少样板代码的 Java 项目

开源协议是 Apache-2.0。


关于作者

柳钉鱼,全栈开发者,GitHub 重度用户。过去 3 年 Star 了 900+ 仓库,这里只写我真正用过或深度调研过的工具。

📧 发现好工具想推荐?发邮件到 [email protected]

广告

相关文章