← 返回
未分类

magic-api-script-skill

magic-api 框架接口开发助手,提供 magic-script 脚本编写指导、DB/HTTP 模块使用及语法纠错;当用户需要在 magic-api 中编写接口脚本、调试脚本或排查脚本错误时使用
magic-api 框架接口开发助手,提供 magic-script 脚本编写指导、DB/HTTP 模块使用及语法纠错;当用户需要在 magic-api 中编写接口脚本、调试脚本或排查脚本错误时使用
Assassin-Q
未分类 community v1.0.0 1 版本 100000 Key: 无需
★ 2
Stars
📥 90
下载
💾 0
安装
1
版本
#latest

概述

Magic-Script 脚本开发助手

Magic-API 是一个基于 Java 的接口快速开发框架,支持通过 magic-script 脚本语言编写接口。magic-script 是一种基于 Mozilla Rhino 的脚本语言,语法类似 JavaScript,专为接口开发优化。

> 说明:本 Skill 同时兼容以下称呼方式:

> - magic-api / magicapi(框架名称)

> - magic-script / MagicScript / magicscript(脚本语言名称)

> 无论用户使用哪种称呼,都指代同一套技术栈。

任务目标

  • 本 Skill 用于:为 magic-api/magicapi 框架提供 magic-script/MagicScript 脚本编写的完整指导
  • 能力包含:magic-script 语法参考、内置模块(db、http 等)使用方法、接口开发示例和脚本故障排查
  • 触发条件:用户需要在 magic-api/magicapi 中编写接口脚本、调试 magic-script/MagicScript 代码或解决脚本执行错误时使用

操作步骤

  • 标准流程:确认场景 → 阅读 SKILL.md → 查阅 references/ 文档 → 编写脚本
  • 可选分支:遇到脚本错误 → 查阅 faq 相关文档

使用示例

示例1:快速查询接口

// GET /api/user/list 分页查询
return db.table('sys_user')
    .column('id', 'userId')
    .column('name', 'userName')
    .where()
    .eq('status', 1)
    .page(page, size);

示例2:带参数的增删改查

// POST /api/user/save 新增用户
assert not_blank(body.name) : 400, '用户名不能为空';
var userId = db.table('sys_user')
    .column('name', body.name)
    .column('create_time', now())
    .insert();
return {code: 200, data: {id: userId}};

示例3:调用外部接口

import http;
var result = http.connect('https://api.example.com/data')
    .param({key: 'value'})
    .header('Authorization', 'Bearer xxx')
    .post()
    .getBody();
return result;

资源索引

语法类

文件说明
------------
references/keywords.md关键字、运算符、数据类型
references/script-syntax.md脚本语法详解
references/lambda-async.mdLambda表达式与异步调用

函数扩展

文件说明
------------
references/aggregation.md聚合函数(count/sum/max/min/avg/group_concat)
references/string-functions.md字符串函数(uuid/is_blank/not_blank)
references/date-functions.md日期函数(date_format/now/current_timestamp_millis/current_timestamp)
references/number-extensions.mdNumber扩展与数学函数
references/collection-extensions.md列表与Map扩展
references/date-extensions.md日期扩展
references/array-functions.md数组创建函数
references/math-functions.md数学函数(round/floor/ceil/percent)
references/other-functions.md其它函数(print/println/ifnull/is_null/not_null)
references/object-extensions.mdObject扩展方法
references/class-extensions.mdClass扩展方法
references/pattern-extensions.mdPattern扩展方法

数据库

文件说明
------------
references/db-query.md数据库查询(select/selectOne/selectInt/selectValue)
references/db-update.md数据库增删改(insert/update/batchUpdate/call)
references/db-transaction.md事务操作
references/db-cache.md缓存操作(cache/deleteCache)
references/single-table.md单表操作(db.table链式API)
references/sql-param.mdSQL参数(#{}、${}、动态SQL、Mybatis语法)
references/page.md分页查询

模块

文件说明
------------
references/http-module.mdHTTP模块调用外部接口
references/request-module.mdRequest模块获取请求信息
references/response-module.mdResponse模块设置响应
references/log-module.md日志模块
references/env-module.md环境配置模块
references/magic-module.mdMagic模块(调用其他接口)

集成

文件说明
------------
references/java-integration.md脚本调用Java
references/api-integration.mdJava调用接口

示例

文件说明
------------
references/quick-start.md快速入门(工程创建、三分钟写接口)
references/quick-param.md请求参数获取
references/quick-crud.mdCRUD操作示例
references/linq.mdLambda/LINQ操作示例

FAQ

文件说明
------------
references/faq.md常见问题
references/validate.md参数校验

注意事项

  1. 语法限制:magic-script 不支持 ES6 默认参数语法 excludeValue = null,需用 if (excludeValue === undefined) 判断;不支持 new Set(),需用数组替代
  1. 数组方法:不支持传统 for 循环,需用 for (value in list)for (index, value in list)注意 Collection 扩展提供了 reduce 方法用于归约操作
  1. 方法命名:遍历集合用 each 而不是 forEach;获取长度用 size() 而不是 length;判断Map键用 containsKey() 而不是 hasOwnProperty()
  1. SQL参数#{} 防注入占位符用于普通参数,${} 字符串拼接用于动态表名/列名/排序字段(存在注入风险)
  1. 类型转换::type 语法用于类型转换,如 '123'::int,转换失败可指定默认值 'abc'::int(0)
  1. 获取请求参数
    • URL参数:直接使用变量名 name
    • 表单参数:直接使用变量名 name
    • Header参数:header.xxx
    • Body参数:body.xxx
    • Path参数:path.xxx 或直接使用变量名
    • Cookie参数:cookie.xxx
    • Session参数:session.xxx
  1. 循环拼接参数in (#{ids}) 语法会自动对集合参数展开
  1. 多数据源:使用 db.slave.select(...) 格式切换数据源
  1. SQL缓存db.cache("cacheName", ttl).select(...) 使用缓存
  1. 事务操作
    • 自动事务:db.transaction(()=>{...})
    • 手动事务:var tx = db.transaction(); tx.commit(); tx.rollback();

版本历史

共 1 个版本

  • v1.0.0 Initial release 当前
    2026-04-28 03:12 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

dev-programming

YouTube

byungkyu
使用托管OAuth集成YouTube Data API,支持搜索视频、管理播放列表、获取频道数据及评论互动,适用于用户需要时使用此技能。
★ 142 📥 42,141
dev-programming

Github

steipete
使用 `gh` CLI 与 GitHub 交互,通过 `gh issue`、`gh pr`、`gh run` 和 `gh api` 管理议题、PR、CI 运行及高级查询。
★ 686 📥 331,308
dev-programming

Mcporter

steipete
使用 mcporter CLI 直接列出、配置、认证及调用 MCP 服务器/工具(支持 HTTP 或 stdio),涵盖临时服务器、配置编辑及 CLI/类型生成功能。
★ 198 📥 68,268