SuperAPI AI 工具集

moodle-external-api-development

编程与开发

查看项目

更新于 10-15 12:40

技能介绍

用途

本技能用于指导开发者为 Moodle LMS 创建自定义的外部 Web 服务 API,开发过程遵循 Moodle 的外部 API 框架和编码标准。适合需要在 Moodle 之上扩展接口、把 Moodle 能力对外开放的场景。

适用场景

根据资料,以下情况适合使用该技能:

  • 为 Moodle 插件创建自定义 Web 服务
  • 实现用于课程管理的 REST/AJAX 端点
  • 构建用于测验操作、用户追踪或报表的 API
  • 将 Moodle 功能暴露给外部应用程序
  • 使用 Moodle 开发移动应用后端

使用方式

资料说明,在执行该技能前应先阅读其详细指南(Detailed Guide)。该指南保留了完整的流程与参考材料,其中的安全性、前置条件和验证要求应被视为强制要求。对于聚焦型任务,可只加载相关章节;对于端到端任务,应完整阅读指南。

实现上使用 Moodle 的外部 API 类体系,例如继承 external_api,并通过 execute_parameters()、execute()、execute_returns() 三个静态方法定义参数、执行逻辑与返回值结构。

示例

简单读取 API(获取测验尝试次数)

示例代码位于 local_userlog\external 命名空间下,先声明 defined('MOODLE_INTERNAL') || die(); 并引入 $CFG->libdir/externallib.php,然后使用 external_api、external_function_parameters、external_single_structure、external_value 等类。execute_parameters() 定义 userid 与 courseid 两个整型参数;execute() 中调用 self::validate_parameters() 做参数校验,随后通过 $DB->get_field_sql() 执行一条 SQL,统计 {quiz_attempts} 与 {quiz} 联合后某用户在某课程下的测验尝试总数,并返回 ['quiz_attempts' => (int)$attempts];execute_returns() 返回包含 quiz_attempts 整型字段的单一结构。

复杂写入 API(按分类创建测验)

资料提到另有一个综合示例文件 create_quiz_from_categories.php,涵盖以下内容:

  • 多次数据库插入
  • 课程模块创建
  • 测验实例配置
  • 带标签的随机题目选择
  • 基于小组的访问限制
  • 较完整的错误日志记录
  • 事务管理

限制

资料明确列出以下限制:

  • 仅在任务与上述范围明确匹配时使用该技能。
  • 不应将输出视为针对具体环境的验证、测试或专家评审的替代品。
  • 若缺少必需的输入、权限、安全边界或成功标准,应停止并请求澄清。

未提供信息

关于该技能的授权协议、版本号、安装命令、具体价格或收费方式,资料暂未提供。