Skip to main content
Glama
kb_modules.py18.5 kB
"""Magic-API 内置模块API文档知识库。""" from __future__ import annotations import textwrap from typing import Any, Dict, List # 内置模块API文档 MODULES_KNOWLEDGE: Dict[str, Dict[str, Any]] = { "db": { "name": "db", "title": "数据库操作模块", "description": "提供完整的数据库CRUD操作、事务管理、缓存支持等功能", "auto_import": True, "methods": { "select": { "signature": "select(sql: String) -> List<Map<String,Object>>", "description": "执行查询操作", "example": 'return db.select("select * from sys_user");' }, "selectInt": { "signature": "selectInt(sql: String) -> Integer", "description": "查询单个整数值", "example": 'return db.selectInt("select count(*) from sys_user");' }, "selectOne": { "signature": "selectOne(sql: String) -> Map<String,Object>", "description": "查询单个对象", "example": 'return db.selectOne("select * from sys_user limit 1");' }, "selectValue": { "signature": "selectValue(sql: String) -> Object", "description": "查询单个值", "example": 'return db.selectValue("select user_name from sys_user limit 1");' }, "page": { "signature": "page(sql: String, limit?: long, offset?: long) -> Object", "description": "分页查询", "example": 'return db.page("select * from sys_user");' }, "update": { "signature": "update(sql: String) -> Integer", "description": "执行增删改操作", "example": 'return db.update("delete from sys_user");' }, "insert": { "signature": "insert(sql: String, id?: String) -> Object", "description": "插入数据", "example": 'return db.insert("insert into sys_user(username,password) values(\'admin\',\'admin\')");' }, "call": { "signature": "call(sql: String) -> Map<String,Object>", "description": "调用存储过程", "example": textwrap.dedent(''' return db.call(""" call test(#{cs1}, @{height(cs2), INTEGER}, @{v_area, VARCHAR}) """) ''').strip() }, "batchUpdate": { "signature": "batchUpdate(sql: String, batchArgs: List<Object[]>) -> int", "description": "批量更新操作", "example": textwrap.dedent(''' return db.batchUpdate(""" update sys_dict set is_del = ? where is_del = ? """, [ ["1", "0"].toArray() ]) ''').strip() }, "cache": { "signature": "cache(cacheName: String, ttl?: long) -> db", "description": "使用缓存", "example": 'return db.cache(\'user\').select("select * from sys_user");' }, "deleteCache": { "signature": "deleteCache(cacheName: String) -> db", "description": "删除缓存", "example": 'db.deleteCache(\'user\');' }, "transaction": { "signature": "transaction(callback?: Function) -> Object", "description": "事务操作", "example": textwrap.dedent(''' var val = db.transaction(()=>{ var v1 = db.update('...'); var v2 = db.update('....'); return v2; }); return val; ''').strip() }, "table": { "signature": "table(tableName: String) -> TableAPI", "description": "单表操作API", "example": 'return db.table(\'sys_user\').select();' } }, "table_api": { "logic": { "signature": "logic() -> TableAPI", "description": "设置逻辑删除", "example": 'db.table(\'user\').logic().select()' }, "withBlank": { "signature": "withBlank() -> TableAPI", "description": "设置插入时不过滤空值", "example": 'db.table(\'user\').withBlank().insert({name: ""})' }, "column": { "signature": "column(column: String, value?: Object) -> TableAPI", "description": "设置查询列或列值", "example": 'db.table(\'user\').column(\'name\').select()' }, "primary": { "signature": "primary(primary: String, defaultValue?: Object) -> TableAPI", "description": "设置主键列", "example": 'db.table(\'user\').primary(\'id\').update({id: 1, name: "test"})' }, "insert": { "signature": "insert(data?: Map) -> Object", "description": "插入数据", "example": 'db.table(\'user\').insert({name: "张三", age: 20})' }, "update": { "signature": "update(data?: Map, isUpdateBlank?: boolean) -> Integer", "description": "更新数据", "example": 'db.table(\'user\').primary(\'id\').update({id: 1, name: "李四"})' }, "save": { "signature": "save(data?: Map, beforeQuery?: boolean) -> Object", "description": "保存数据(插入或更新)", "example": 'db.table(\'user\').primary(\'id\').save({id: 1, name: "王五"})' }, "select": { "signature": "select() -> List<Map>", "description": "查询数据", "example": 'db.table(\'user\').select()' }, "page": { "signature": "page() -> Object", "description": "分页查询", "example": 'db.table(\'user\').page()' }, "where": { "signature": "where() -> WhereAPI", "description": "设置查询条件", "example": textwrap.dedent(''' db.table('user') .where() .like('name','%张%') .eq('status', 1) .select() ''').strip() } }, "column_mapping": { "normal": "列名保持原样", "camel": "列名使用驼峰命名", "pascal": "列名使用帕斯卡命名", "upper": "列名保持全大写", "lower": "列名保持全小写" }, "doc": "https://www.ssssssss.org/magic-api/pages/module/db/" }, "http": { "name": "http", "title": "HTTP请求模块", "description": "基于RestTemplate封装的HTTP客户端,支持各种HTTP方法", "auto_import": False, "methods": { "connect": { "signature": "connect(url: String) -> HttpModule", "description": "创建HTTP请求对象", "example": 'http.connect("http://localhost:9999/api/test")' }, "param": { "signature": "param(key: String, value: Object) -> HttpModule", "description": "设置URL参数", "example": 'http.param(\'id\', 123).param({name: \'test\'})' }, "data": { "signature": "data(key: String, value: Object) -> HttpModule", "description": "设置表单参数", "example": 'http.data(\'name\', \'test\').data({age: 20})' }, "header": { "signature": "header(key: String, value: String) -> HttpModule", "description": "设置请求头", "example": 'http.header(\'token\', \'abc123\').header({contentType: \'application/json\'})' }, "body": { "signature": "body(body: Object) -> HttpModule", "description": "设置请求体", "example": 'http.body({name: \'test\', age: 20})' }, "contentType": { "signature": "contentType(contentType: String) -> HttpModule", "description": "设置内容类型", "example": 'http.contentType(\'application/json\')' }, "get": { "signature": "get() -> ResponseEntity", "description": "执行GET请求", "example": 'return http.connect(\'/api/users\').get().getBody()' }, "post": { "signature": "post() -> ResponseEntity", "description": "执行POST请求", "example": 'return http.connect(\'/api/users\').body(userData).post().getBody()' }, "put": { "signature": "put() -> ResponseEntity", "description": "执行PUT请求", "example": 'return http.connect(\'/api/users/1\').body(userData).put().getBody()' }, "delete": { "signature": "delete() -> ResponseEntity", "description": "执行DELETE请求", "example": 'return http.connect(\'/api/users/1\').delete().getBody()' } }, "doc": "https://www.ssssssss.org/magic-api/pages/module/http/" }, "response": { "name": "response", "title": "响应处理模块", "description": "统一响应格式封装,提供JSON、分页、文件下载等功能", "auto_import": False, "methods": { "json": { "signature": "json(value: Object) -> ResponseEntity", "description": "返回JSON响应", "example": 'return response.json({success: true, data: result})' }, "page": { "signature": "page(total: long, values: List) -> Object", "description": "返回分页响应", "example": 'return response.page(100, records)' }, "text": { "signature": "text(value: String) -> ResponseEntity", "description": "返回文本响应", "example": 'return response.text(\'操作成功\')' }, "redirect": { "signature": "redirect(url: String) -> ResponseEntity", "description": "重定向", "example": 'return response.redirect(\'/login\')' }, "download": { "signature": "download(value: Object, filename: String) -> ResponseEntity", "description": "文件下载", "example": 'return response.download(fileContent, \'test.txt\')' }, "image": { "signature": "image(value: Object, mine: String) -> ResponseEntity", "description": "图片输出", "example": 'return response.image(imageBytes, \'image/png\')' }, "addHeader": { "signature": "addHeader(key: String, value: String) -> void", "description": "添加响应头", "example": 'response.addHeader(\'token\', \'abc123\')' }, "setHeader": { "signature": "setHeader(key: String, value: String) -> void", "description": "设置响应头", "example": 'response.setHeader(\'content-type\', \'application/json\')' }, "addCookie": { "signature": "addCookie(key: String, value: String, options?: Map) -> void", "description": "添加Cookie", "example": 'response.addCookie(\'session\', \'abc123\', {maxAge: 3600})' }, "addCookies": { "signature": "addCookies(cookies: Map, options?: Map) -> void", "description": "批量添加Cookie", "example": 'response.addCookies({session: \'abc123\', user: \'test\'})' }, "getOutputStream": { "signature": "getOutputStream() -> OutputStream", "description": "获取输出流", "example": 'var out = response.getOutputStream(); // 然后使用 out.write()' }, "end": { "signature": "end() -> void", "description": "结束响应处理", "example": 'response.end()' } }, "doc": "https://www.ssssssss.org/magic-api/pages/module/response/" }, "request": { "name": "request", "title": "请求处理模块", "description": "获取请求参数、文件上传、请求头等信息", "auto_import": False, "methods": { "getFile": { "signature": "getFile(name: String) -> MultipartFile", "description": "获取上传的文件", "example": 'var file = request.getFile(\'image\')' }, "getFiles": { "signature": "getFiles(name: String) -> List<MultipartFile>", "description": "获取上传的文件列表", "example": 'var files = request.getFiles(\'images\')' }, "getValues": { "signature": "getValues(name: String) -> List<String>", "description": "获取数组参数", "example": 'var values = request.getValues(\'tags\')' }, "getHeaders": { "signature": "getHeaders(name: String) -> List<String>", "description": "获取请求头数组", "example": 'var headers = request.getHeaders(\'accept\')' }, "get": { "signature": "get() -> MagicHttpServletRequest", "description": "获取请求对象", "example": 'var req = request.get()' }, "getClientIP": { "signature": "getClientIP() -> String", "description": "获取客户端IP", "example": 'var ip = request.getClientIP()' } }, "doc": "https://www.ssssssss.org/magic-api/pages/module/request/" }, "log": { "name": "log", "title": "日志模块", "description": "基于SLF4J的日志输出功能", "auto_import": True, "methods": { "trace": { "signature": "trace(message: String, args...: Object) -> void", "description": "TRACE级别日志", "example": 'log.trace(\'处理请求: {}\', requestId)' }, "debug": { "signature": "debug(message: String, args...: Object) -> void", "description": "DEBUG级别日志", "example": 'log.debug(\'调试信息: {}\', data)' }, "info": { "signature": "info(message: String, args...: Object) -> void", "description": "INFO级别日志", "example": 'log.info(\'用户{}登录成功\', username)' }, "warn": { "signature": "warn(message: String, args...: Object) -> void", "description": "WARN级别日志", "example": 'log.warn(\'参数异常: {}\', param)' }, "error": { "signature": "error(message: String, args...: Object) -> void", "description": "ERROR级别日志", "example": 'log.error(\'系统异常\', exception)' } }, "doc": "https://www.ssssssss.org/magic-api/pages/module/log/" }, "env": { "name": "env", "title": "环境变量模块", "description": "获取Spring Boot配置属性", "auto_import": False, "methods": { "get": { "signature": "get(key: String, defaultValue?: String) -> String", "description": "获取配置属性", "example": 'var port = env.get(\'server.port\', \'8080\')' } }, "doc": "https://www.ssssssss.org/magic-api/pages/module/env/" }, "magic": { "name": "magic", "title": "内部调用模块", "description": "在脚本内部调用其他Magic-API接口或函数", "auto_import": False, "methods": { "call": { "signature": "call(method: String, path: String, parameters: Map) -> Object", "description": "调用接口(带状态码)", "example": 'return magic.call(\'get\', \'/api/users\', {page: 1})' }, "execute": { "signature": "execute(method: String, path: String, parameters: Map) -> Object", "description": "调用接口(原始数据)", "example": 'return magic.execute(\'post\', \'/api/users\', userData)' }, "invoke": { "signature": "invoke(path: String, parameters: Map) -> Object", "description": "调用函数", "example": 'return magic.invoke(\'/common/encode/md5\', {text: \'hello\'})' } }, "doc": "https://www.ssssssss.org/magic-api/pages/module/magic/" } } def get_module_api(module_name: str) -> Dict[str, Any] | None: """获取指定模块的API文档。""" return MODULES_KNOWLEDGE.get(module_name) def list_available_modules() -> List[str]: """获取所有可用的模块名称。""" return list(MODULES_KNOWLEDGE.keys()) def get_auto_import_modules() -> List[str]: """获取自动导入的模块。""" return [name for name, module in MODULES_KNOWLEDGE.items() if module.get("auto_import", False)] __all__ = [ "MODULES_KNOWLEDGE", "get_module_api", "list_available_modules", "get_auto_import_modules" ]

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Dwsy/magic-api-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server