TTokenySpace
返回 Skills 列表

Api Magic Gen Free

基于magic-api框架,通过Web UI在线编写脚本自动生成Java后端HTTP接口,无需传统Controller或Service代码。

#中文
0

安装到 Tokeny(自动)

下载 ZIP
安装"api-magic-gen-free"技能
技能信息:
- 名称: Api Magic Gen Free
- 标识: api-magic-gen-free
- 描述: 基于magic-api框架,通过Web UI在线编写脚本自动生成Java后端HTTP接口,无需传统Controller或Service代码。
- 版本: 1.0.0
下载地址:
https://www.tokeny.space/api/skills/api-magic-gen-free/download
继续

复制上方内容到 Tokeny 客户端并在会话中发送即可自动安装;也可直接 下载 ZIP并拖动到技能窗口安装。

SKILL.md

接口魔法生成工具(免费版)

本工具为Java后端开发者提供基于magic-api框架的接口快速生成能力。免费版覆盖核心场景:脚本编写、CRUD映射、条件查询、基础认证,可快速搭建原型与内部工具接口。

概述

传统Java接口开发需要编写Controller、Service、Dao、Mapper、XML、VO等多个文件,流程繁琐。magic-api框架通过Web UI编写脚本自动生成HTTP接口,将开发效率提升数倍,特别适合原型验证、内部工具、数据看板等场景。

本工具以中文实战指南形式提供完整使用说明,覆盖从Maven依赖配置到生产部署的全流程,配套安全注意事项与性能调优建议。

核心能力

能力分类说明
脚本编写Web UI在线编辑,实时调试,所见即所得
请求映射自动映射GET/POST/PUT/DELETE四类HTTP方法
内置对象request、path、body、db、cache、log、response
数据库操作内置select、selectOne、insert、update、delete、page
事务支持通过db.transaction包裹批量操作
脚本语法类JavaScript语法,变量定义、条件判断、循环
技术实现要点:核心能力基于input_params参数与output_format配置实现,支持创建/查询/修改/删除等操作模式,通过config_options进行运行时配置。

核心功能执行

input_params参数进行配置。

输入: 用户提供核心功能执行所需的指令和必要参数。 处理: 解析核心功能执行的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回核心功能执行的响应数据,包含状态码、结果和日志。

  • 执行此能力时使用input_params参数,支持创建/查询/导出操作

参数配置与调用

config_options参数进行配置。

输入: 用户提供参数配置与调用所需的指令和必要参数。 处理: 解析参数配置与调用的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回参数配置与调用的响应数据,包含状态码、结果和日志。

  • 执行此能力时使用config_options参数,支持修改/重置/导入操作

结果处理与输出

output_format参数进行配置。

输入: 用户提供结果处理与输出所需的指令和必要参数。 处理: 解析结果处理与输出的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回结果处理与输出的响应数据,包含状态码、结果和日志。

  • 执行此能力时使用output_format参数,支持导出/保存/转换操作 能力覆盖范围:本skill的核心能力覆盖以下场景关键词:magic、api、框架的接口快速生、成工具、编写脚本自动映射、Controller、Service、Dao、后端开发者的接口、快速生成工具、框架能力封装、编写脚本即可自动、映射为、Mapper、XML、对象的编写负担、特别适合原型验证、内部工具、数据看板接口等场、Use、when、接口对接、Webhook、系统连接时使用、不适用于逆向工程等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持。

使用场景

场景一:后端原型快速验证

产品经理提出需求后,2小时内提供可用接口供前端联调,缩短需求确认周期,避免返工。

场景二:内部运营后台接口

为运营、客服等内部团队提供数据查询、导出、统计接口,无需走完整研发流程。

场景三:数据看板接口

为BI看板、报表系统提供数据查询接口,支持分页、聚合、条件过滤。

场景四:独立开发者API服务

一人公司或独立开发者快速搭建SaaS产品的后端API,专注业务逻辑而非框架代码。

快速开始

依赖详情

<dependency>
    <groupId>org.ssssssss</groupId>
    <artifactId>magic-api-spring-boot-starter</artifactId>
    <version>2.2.2</version>
</dependency>

第二步:配置application.yml

server:
  port: 9999
# ...
magic-api:
  web: /magic/web              # Web UI 入口
  resource:
    location: /data/magic-api  # 脚本存储位置

第三步:访问Web UI编写接口

打开浏览器访问 http://localhost:9999/magic/web,新建接口并编写脚本:

// GET /api/user/:id - 查询单个用户
var user = db.selectOne("select * from user where id = ?", path.id);
return user ? {code: 200, data: user} : {code: 404, msg: "用户不存在"};

保存后接口立即可用,无需重启服务。完整上手时间约120秒。

示例

内置对象速查表

对象说明示例
requestHTTP请求参数request.name
pathURL路径参数path.id
body请求体JSONbody.name
db数据库操作db.select()
log日志输出log.info()
cache缓存操作cache.set()
responseHTTP响应response.setHeader()

数据库操作示例

// 查询列表
var list = db.select("select * from user where status = ?", 1);
// ...
// 查询单条
var user = db.selectOne("select * from user where id = ?", id);
// ...
// 查询单值
var count = db.selectValue("select count(*) from user");
// ...
// 分页查询
var page = db.page("select * from user", 1, 10);
// 返回: {list: [...], total: 100, pageSize: 10, pageNumber: 1}
// ...
// 插入并返回自增ID
var id = db.insert("user", {name: "张三", age: 25}, true);
// ...
// 更新
db.update("user", {name: "李四"}, "id = ?", 1);
// ...
// 删除
db.delete("user", "id = ?", 1);

事务处理

db.transaction(() => {
    var orderId = db.insert("orders", order, true);
    db.update("product", {stock: stock - 1}, "id = ?", productId);
});

RESTful CRUD完整示例

// GET /api/user - 查询列表
return {code: 200, data: db.select("select * from user")};
// ...
// POST /api/user - 新增
var id = db.insert("user", body, true);
return {code: 200, data: {id: id}, msg: "创建成功"};
// ...
// PUT /api/user/:id - 更新
db.update("user", body, "id = ?", path.id);
return {code: 200, msg: "更新成功"};
// ...
// DELETE /api/user/:id - 删除
db.delete("user", "id = ?", path.id);
return {code: 200, msg: "删除成功"};

条件查询(动态拼接)

var sql = "select * from user where 1=1";
var params = [];
// ...
if (request.name) {
    sql += " and name like ?";
    params.push("%" + request.name + "%");
}
if (request.status) {
    sql += " and status = ?";
    params.push(request.status);
}
// ...
return db.select(sql, ...params);

登录认证基础模式

// 登录接口
var user = db.selectOne("select * from user where username = ?", body.username);
if (!user || user.password != body.password) {
    return {code: 401, msg: "用户名或密码错误"};
}
// ...
var token = generateToken(user.id);
cache.set("token:" + token, user.id, 86400);
return {code: 200, data: {token: token, user: user}};
// ...
// 认证拦截(放在需要登录的接口开头)
var token = request.header("Authorization");
var userId = cache.get("token:" + token);
if (!userId) return {code: 401, msg: "请先登录"};

最佳实践

1. 使用参数化查询防SQL注入

// 正确:使用?占位符
db.select("select * from user where id = ?", id);
// ...
// 错误:字符串拼接,有SQL注入风险
db.select("select * from user where id = " + id);

2. 密码必须加密存储

使用BCrypt或MD5+盐值,禁止明文存储密码。

3. 复杂逻辑拆分多个接口

单脚本不超过100行,复杂业务拆分为多个小接口,便于维护与复用。

4. 统一返回结构

所有接口返回统一格式:{code: 200, data: ..., msg: "..."},便于前端处理。

5. 脚本目录纳入Git管理

/data/magic-api目录纳入版本控制,支持回滚与多人协作。

常见问题

Q1:生产环境是否需要关闭Web UI?

A:必须关闭或限制IP访问。Web UI暴露在生产环境会被未授权用户篡改接口逻辑,造成严重安全风险。建议通过Nginx白名单或magic-api.web.enabled=false关闭。

Q2:脚本修改后是否需要重启服务?

A:不需要。magic-api支持热加载,保存脚本后立即可用。这是其相比传统Java开发的核心优势。

Q3:如何调试脚本?

A:Web UI内置调试控制台,可单步执行、查看变量值、打印日志。生产环境可通过log.info()输出到日志文件排查。

Q4:支持哪些数据库?

A:通过Spring Boot的datasource配置,支持MySQL、PostgreSQL、Oracle、SQL Server等主流关系型数据库,由底层JDBC驱动决定。

Q5:脚本如何与已有Java代码协作?

A:通过import语句引入Java类,或在Spring容器中注册为Bean后通过@magic-script注解调用。

已知限制

本免费体验版限制以下高级功能:

  • 单接口脚本行数上限为100行
  • 不支持多数据源切换
  • 不支持自定义拦截器与全局变量
  • 不支持接口导出为OpenAPI文档
  • 不支持性能监控与慢接口告警

解锁全部功能请使用专业版:api-magic-gen-pro

  • 当前为免费版本,如需完整功能请升级到付费版获取全部能力

依赖说明

运行环境

  • Agent平台: 支持SKILL.md的任意AI Agent(Claude Code / Cursor / Codex / Gemini CLI等)
  • 操作系统: Windows / macOS / Linux
  • JDK: 8+
  • Maven: 3.5+
  • Spring Boot: 2.x/3.x

第三方依赖

依赖项类型是否必需获取方式
JDK运行时必需adoptium.net 官方下载
Maven构建工具必需maven.apache.org 官方下载
magic-api-spring-boot-starterJava依赖必需Maven中央仓库
Spring BootJava框架必需Maven中央仓库
JDBC驱动Java依赖必需根据数据库类型选择

API Key 配置

  • 本免费版基于本地magic-api服务,无需额外API Key
  • 数据库连接信息通过application.yml的spring.datasource配置
  • 禁止在脚本中硬编码数据库密码,必须使用环境变量或配置中心

可用性分类

  • 分类: MD+EXEC(纯Markdown指令,部分功能需要exec命令行执行能力)
  • 说明: 基于Markdown的AI Skill,通过自然语言指令驱动Agent完成操作

错误处理

错误场景原因处理方式
配置错误参数缺失或格式错误检查依赖说明中的配置要求
运行时错误运行环境不满足确认运行环境符合依赖说明
网络错误连接超时或不可达执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案

输出格式

{
  "success": true,
  "data": {
    "result": "接口魔法生成免费版处理结果",
    "execution_time": "0.5s",
    "metadata": {
      "version": "1.0",
      "processor": "api magic gen"
    }
  },
  "execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
  "error": null
}

评论

加载中…