我把 SpringBoot CRUD 干掉了:一个 XML 就能定义 API,太爽了!

我为什么做 Lite API?
做 Java Web 开发这些年,我越来越烦一件事:
一个简单接口,要写:
- Controller
- Service
- ServiceImpl
- Mapper
- Entity
- VO
- DTO
- XML
- 配置
- Swagger
最后只是为了返回一句:
{"msg":"hello"}
大量时间浪费在:
- CRUD
- 重复结构
- 模板代码
- 对象搬运
- 参数透传
于是我开始思考:
有没有一种方式,
不需要写 Controller,
不需要写 Service,
不需要 Mapper,
直接定义 API?
后来就有了:
Lite API
一个基于 JFinal 的轻量级 API 敏捷开发框架。
Lite API 到底是什么?
Lite API 的核心思想非常简单:
用 XML 描述 API,
用 Script 实现逻辑。
比如下面这个接口:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<api-group id="hello" name="Hello APIs" path="/doc/hello">
<api id="world" method="GET" name="Hello World" path="/world">
<script><![CDATA[
return 'Hello, World!';
]]></script>
</api>
</api-group>
直接生成:
GET /doc/hello/world
返回:
Hello, World!
没有:
- Controller
- Service
- Dao
- Mapper
- Spring Bean
只有:
- XML
- Script
- API
为什么我选择 XML?
很多人会问:
为什么不用注解?
为什么不用 YAML?
为什么不用 JSON?
因为 XML 有几个天然优势:
1. 结构表达能力强
API 本身就是树状结构:
- group
- api
XML 天然适合。
2. 非常适合动态加载
Lite API 支持:
- 热更新
- 动态编译
- 无需重启
XML 在这种场景下非常稳定。
3. 更适合 DSL 化
未来我希望:
<select>
这种 DSL 会越来越强。
XML 比 JSON/YAML 更适合做领域语言。
Lite API 有什么特点?
1. 零编码开发
很多接口甚至不用写 Java。
直接 XML + Script:
<script>
return db.select(...)
</script>
即可完成业务。
2. 基于 JFinal
我一直觉得:
JFinal 是 Java 世界被低估的框架。
它:
- 极简
- 高性能
- 启动快
- 没有 Spring 那种巨大负担
Lite API 基于 JFinal 5.x 构建。
3. 动态脚本
基于 Magic-Script:
- 即改即生效
- 不重启
- 动态执行
非常适合:
- 后台系统
- 中台
- 内部接口
- 快速交付
4. 多数据源
支持:
- MySQL
- PostgreSQL
- Oracle
- SQLServer
而且支持:
- 在线配置
- 动态切换
5. SQL 缓存
直接支持:
- SQL Cache
- 自定义缓存
- 热点数据缓存
减少数据库压力。
Lite API 适合什么场景?
我认为特别适合:
中后台系统
大量 CRUD。
内部平台
快速迭代。
API 网关
统一聚合。
低代码平台
动态接口。
AI Agent 后端
AI 时代:
API 会越来越碎片化。
Lite API 非常适合:
- 动态生成接口
和 SpringBoot 最大区别是什么?
SpringBoot:
@RestController
@RequestMapping("/user")
public class UserController {
}
Lite API:
<api path="/user/list">
SpringBoot 是:
Java 对象驱动开发。
Lite API 是:
API DSL 驱动开发。
这是两种完全不同的思路。
我为什么开源?
因为我发现:
现在 Java 后端越来越重。
但很多业务:
根本不需要那么重。
Lite API 更像:
一个 API Engine。
希望能给 Java 世界带来一些不同思路。
最后
Lite API 目前还在持续迭代。
如果你也厌倦了:
- 写 CRUD
- 搬砖
- 套模板
欢迎一起交流。
更多推荐


所有评论(0)