APIJSON 评测:18K Star 的零代码 ORM,后端不写接口也能跑
评测 Tencent/APIJSON 仓库,一个支持零代码生成接口和文档的实时 ORM 库,Java 编写,18K+ Stars,腾讯出品。
广告
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]
广告