magic-api 国产接口快速开发框架。通过 Web UI 编写脚本自动映射为 HTTP 接口,无需 Controller/Service/Dao。当用户提到 magic-api、接口快速开发、低代码接口、动态接口生成、magic-script 时触发此技能。适用于 Spring Boot 集成、数据库操作、脚本语法、RESTful 接口开发等场景。
magic-api 是基于 Java 的接口快速开发框架,通过 Web UI 编写脚本自动生成 HTTP 接口,无需定义 Controller、Service、Dao、Mapper、XML、VO 等 Java 对象。
xml
yaml
server:
port: 9999
magic-api:
web: /magic/web # Web UI 入口
resource:
location: /data/magic-api # 脚本存储位置(可改为 classpath: 只读模式)
http://localhost:9999/magic/web
| 对象 | 说明 | 示例 |
|---|---|---|
| request | HTTP 请求参数 | request.name |
| path |
magic-api 使用 magic-script 脚本语言,语法类似 JavaScript:
javascript
// 变量定义
var name = request.name;
var id = path.id;
// 条件判断
if (name) {
log.info(用户名: + name);
}
// 返回结果
return {code: 200, data: list};
javascript
// 查询列表
var list = db.select(select * from user);
// 带参数查询
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}
javascript
// 插入(返回影响行数)
var affected = db.insert(user, {name: 张三, age: 25});
// 插入并返回自增ID
var id = db.insert(user, {name: 张三}, true);
// 更新
var affected = db.update(user, {name: 李四}, id = ?, 1);
// 删除
var affected = db.delete(user, id = ?, 1);
javascript
db.transaction(() => {
var orderId = db.insert(orders, order, true);
db.update(product, {stock: stock - 1}, id = ?, productId);
});
| 方法 | 用途 | 示例路径 |
|---|---|---|
| GET | 查询 | /api/user/:id |
| POST |
javascript
// URL 路径参数: /api/user/:id
var id = path.id;
// Query 参数: /api/user?name=xxx
var name = request.name;
// 请求体 JSON
var body = request.body;
var username = body.username;
// 请求头
var token = request.header(Authorization);
javascript
// GET /api/user/:id - 查询单个
var user = db.selectOne(select * from user where id = ?, path.id);
return user ? {code: 200, data: user} : {code: 404, msg: 用户不存在};
// 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: 删除成功};
javascript
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);
javascript
// 登录
var user = db.selectOne(select * from user where username = ?, body.username);
if (!user || user.password != body.password) {
return {code: 401, msg: 用户名或密码错误};
}
var token = token + user.id + + Date.now();
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: 请先登录};
详见参考文档:
该技能支持在以下平台通过对话安装:
帮我安装 SkillHub 和 magic-api-generate-1776156902 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 magic-api-generate-1776156902 技能
skillhub install magic-api-generate-1776156902
文件大小: 9.78 KB | 发布时间: 2026-4-15 10:16