一键生成标准化 REST API 代码的可视化桌面工具
Rest Code 是一个智能的Java代码生成器,专为快速开发REST API而设计。通过简洁的RCS(Rest Code Script)脚本语言,自动生成符合规范的Spring Boot项目代码,包括Controller、Service、VO类等。
- 🚀 快速生成:通过RCS脚本一键生成完整的REST API代码
- 🎨 智能校验:实时语法检查,友好的错误提示
- 🔧 多版本支持:同时支持Spring Boot 2.x和3.x
- 📝 代码预览:生成前可预览所有代码
- 🎪 模板丰富:内置CRUD操作模板
- 🌈 界面美观:现代化的用户界面
前往 Releases 页面下载适合你操作系统的版本:
- Windows:
Rest-Code-Setup-x.x.x.exe - macOS:
Rest-Code-x.x.x.dmg
# 1. 定义领域
/User/用户管理
# 2. 编写 API 脚本
User.POST..create.@.创建用户
User.GET./{id}.get.%id>.获取用户详情
User.PATCH./{id}.update.%id@update.更新用户
User.DELETE./{id}.delete.%id.删除用户
配置输出路径和包名,点击「生成代码」,即可获得完整的 Spring Boot 代码:
🔧 需要从零开始搭建项目? 请查看我们的 完整环境搭建指南,包含:
- 🎯 Spring Boot 2 vs 3 版本对比
- 🏗️ Maven/Gradle 完整配置
- 🛠️ 常见问题解决方案
- 🚀 一键项目模板生成
💡 提示:Rest Code 内置了项目模板生成功能,可以一键生成包含所有依赖的完整 Spring Boot 项目!
@RestController
@RequestMapping("/users")
public class UserController {
@PostMapping
public Result<Void> create(@RequestBody @Valid UserReqVo reqVo) {
// 业务逻辑
}
@GetMapping("/{id}")
public Result<UserRespVo> get(@PathVariable("id") long id) {
// 业务逻辑
}
// ... 更多方法
}
public interface UserService {
/**
* 创建用户
*/
void create(UserReqVo reqVo);
/**
* 获取用户详情
*/
UserRespVo get(long id);
// ... 更多方法
}
@Service
public class UserServiceImpl implements UserService {
@Override
public void create(UserReqVo reqVo) {
// 业务逻辑
}
@Override
public UserRespVo get(long id) {
// 业务逻辑
}
// ... 更多方法
}
public class UserReqVo implements Serializable {
/**
* todo: 待覆盖字段,实际使用时请替换为真实字段,一般实践为从对应的数据库实体类中复制过来
*/
@Schema(description = "待覆盖字段")
private String todo;
}
// ... 更多Vo
public interface UserConverter {
UserConverter INSTANCE = Mappers.getMapper(UserConverter.class);
/**
* todo: 待覆盖方法,命名规则是 fromXxxToYyy, 如果包含领域名称,可以忽略领域名称,甚至于from 、to 关键词,因为可以通过上下文推断
*
* @param source 待转换数据
* @return 转换后的数据
*/
Object fromXxxToYyy(Object source);
}- Controller - 标准化的 REST 控制器
- Service - 业务逻辑接口与实现
- VO 类 - 请求响应对象模型
- Converter - 实体与 VO 转换器
- 表格编辑器 - 直观的 API 设计界面
- 实时校验 - 即时检测脚本错误
- 双向联动 - 表格与脚本编辑器同步更新
- 代码预览 - 生成前预览代码结构
- 领域管理 - 可视化领域设计
- 一键 CRUD - 快速生成标准操作
- 批量操作 - 支持列表参数的批量处理
- 模板匹配 - 智能选择代码模板
RCS(Rest Code Script)是专为 API 设计的领域特定语言,语法简洁而强大。
领域名称.HTTP方法.路径.操作名称.参数契约.描述
| 符号格式 | 参数类型 | 生成代码示例 | 说明 |
|---|---|---|---|
@ |
单个业务对象 | @RequestBody @Valid UserReqVo reqVo |
标准请求体对象 |
@业务名 |
带业务后缀的对象 | @RequestBody @Valid UserUpdateReqVo reqVo |
指定业务场景的请求体 |
@= |
对象列表 | @RequestBody @Valid List<UserReqVo> reqVos |
批量操作的对象列表 |
@=业务名 |
带业务后缀的对象列表 | @RequestBody @Valid List<UserUpdateReqVo> reqVos |
指定业务场景的对象列表 |
@# |
数值型列表 | @RequestBody @Valid List<Long> ids |
数值型ID列表,默认参数名为ids |
@#参数名 |
自定义数值型列表 | @RequestBody @Valid List<Long> userIds |
自定义参数名的数值型列表 |
@$ |
字符串型列表 | @RequestBody @Valid List<String> codes |
字符串型编码列表,默认参数名为codes |
@$参数名 |
自定义字符串型列表 | @RequestBody @Valid List<String> orgCodes |
自定义参数名的字符串型列表 |
| 符号格式 | 参数类型 | 生成代码示例 | 说明 |
|---|---|---|---|
? |
标准查询对象 | @ParameterObject UserQueryVo queryVo |
领域标准查询参数 |
?业务名 |
带业务后缀的查询对象 | @ParameterObject UserSimpleQueryVo queryVo |
指定业务场景的查询参数 |
?$ |
字符串型查询参数 | @RequestParam("code") String code |
默认字符串查询参数 |
?$参数名 |
自定义字符串查询参数 | @RequestParam("orgCode") String orgCode |
自定义的字符串型查询参数 |
?# |
数值型查询参数 | @RequestParam("number") Long number |
默认数值查询参数 |
?#参数名 |
自定义数值查询参数 | @RequestParam("userId") Long userId |
自定义的数值型查询参数 |
?* |
文件型查询参数 | @RequestParam("file") MultipartFile file |
默认文件查询参数 |
?*参数名 |
自定义文件查询参数 | @RequestParam("document") MultipartFile document |
自定义的文件型查询参数 |
| 符号格式 | 参数类型 | 生成代码示例 | 说明 |
|---|---|---|---|
% |
数值型路径参数 | @PathVariable("id") long id |
默认主键ID参数 |
%参数名 |
自定义数值参数 | @PathVariable("userId") long userId |
自定义的数值型路径参数 |
%$ |
字符串型路径参数 | @PathVariable("code") String code |
默认编码参数 |
%$参数名 |
自定义字符串参数 | @PathVariable("orgCode") String orgCode |
自定义的字符串型路径参数 |
| 符号格式 | 响应类型 | 生成代码示例 | 说明 |
|---|---|---|---|
> |
单个业务对象 | Result<UserRespVo> |
返回单个业务对象 |
>业务名 |
带业务后缀的对象 | Result<UserSimpleRespVo> |
返回指定业务场景的对象 |
>= |
对象列表 | Result<List<UserRespVo>> |
返回对象列表 |
>=业务名 |
带业务后缀的对象列表 | Result<List<UserSimpleRespVo>> |
返回指定业务场景的对象列表 |
>+ |
分页对象 | Result<Page<UserRespVo>> |
返回分页数据,自动添加分页查询参数 |
>+业务名 |
带业务后缀的分页对象 | Result<Page<UserSimpleRespVo>> |
返回指定业务场景的分页数据 |
>< |
树形结构 | Result<TreeNode<Long, UserTreeVo>> |
返回树形结构数据 |
><业务名 |
带业务后缀的树形结构 | Result<TreeNode<Long, UserSimpleTreeVo>> |
返回指定业务场景的树形数据 |
无>符号 |
空响应 | Result<Void> |
无返回数据的操作 |
# 领域声明
/User/用户管理
/Order/订单管理
# 用户 CRUD
User.POST..create.@.创建用户
User.GET./{id}.get.%id>.获取用户
User.PATCH./{id}.update.%id@update.更新用户
User.DELETE./{id}.delete.%id.删除用户
User.GET..list.?>.用户分页列表
# 文件上传
User.POST./upload.uploadAvatar.?*.上传头像
User.POST./uploadDoc.uploadDocument.?*document>.上传文档
User.POST./uploadWithInfo.uploadWithInfo.?$category?*file>.带分类信息上传文件
# 订单管理
Order.POST..create.@.创建订单
Order.GET..list.?userId>=simple.用户订单列表
Order.PATCH./{id}/status.updateStatus.%id@$status.更新订单状态
- 🎯 设计领域 - 添加业务领域,如用户、订单等
- 📝 编写脚本 - 使用 RCS 语法定义 API
- ✅ 校验脚本 - 实时检测语法错误和重复定义
- ⚙️ 配置生成 - 设置包名、输出路径等参数
- 🚀 生成代码 - 一键生成完整的 Spring Boot 代码
- 📄 脚本导入导出 - 保存和加载
.rcs文件 - 👁️ 代码预览 - 生成前预览代码结构
- 🔄 增量更新 - 在现有代码基础上安全添加
- 📋 批量操作 - 一键生成常用 CRUD 操作
Rest Code 采用模块化架构设计:
- 🎨 前端界面 - 基于 Vue 3 + Element Plus 的现代化 UI
- ⚡ 核心引擎 - RCS 脚本解析与代码生成引擎
- 📄 模板系统 - 可扩展的代码模板库
- 🔧 Electron 容器 - 跨平台桌面应用支持
我们欢迎所有形式的贡献!
- 🍴 Fork 本仓库
- 🌿 创建 特性分支:
git checkout -b feature/amazing-feature - 💾 提交 更改:
git commit -m 'Add some amazing feature' - 📤 推送 分支:
git push origin feature/amazing-feature - 🔀 创建 Pull Request
# 克隆仓库
git clone https://github.com/dhslegen/rest-code.git
# 安装依赖
cd rest-code
yarn install
# 启动开发服务器
yarn run dev
# 构建应用
yarn run build --mac|--win- Windows 10 或更高版本
- macOS 10.14 或更高版本
本项目基于 Apache-2.0 license 开源协议。
感谢所有为项目做出贡献的开发者们!
特别感谢:
- [@fengzilong]- 代码预览功能的灵感来源
- [@linjiahui] - 一键 CRUD 功能的灵感来源
如果这个项目对你有帮助,请给它一个 ⭐️

