用途:该技能用于为 Moodle LMS 创建自定义外部 Web 服务 API,遵循 Moodle 外部 API 框架和编码规范。适用场景包括为 Moodle 插件创建自定义 Web 服务、实现课程管理的 REST/AJAX 端点、构建测验操作与用户跟踪或报表 API、将 Moodle 功能暴露给外部应用,以及开发基于 Moodle 的移动应用后端。
主要能力:Moodle 外部 API 遵循严格的三方法模式:execute_parameters() 定义输入参数结构,execute() 包含业务逻辑,execute_returns() 定义返回结构。技能覆盖参数类型(PARAM_INT、PARAM_TEXT、PARAM_RAW、PARAM_BOOL、PARAM_FLOAT、PARAM_ALPHANUMEXT 等)、结构类型(external_value、external_single_structure、external_multiple_structure)与值标志(VALUE_REQUIRED、VALUE_OPTIONAL、VALUE_DEFAULT)。还包括服务注册(db/services.php)、错误处理与日志、事务、课程模块创建、基于群组的访问限制、按标签随机选题等高级模式,以及通过 Web 服务测试客户端、curl 和 JavaScript AJAX 调用进行测试的方法。
使用方式:按步骤在插件 classes/external/ 下创建继承 external_api 的类,定义参数与返回结构,在 execute() 中调用 validate_parameters()、validate_context()、require_capability() 进行校验与权限检查,使用参数化查询访问数据库,最后在 db/services.php 注册函数与服务。测试时可启用 Web 服务与 REST 协议,创建外部服务后用测试客户端、curl 或 require(['core/ajax']) 调用。
限制:需在 Moodle 插件环境中运行,需具备相应能力和上下文;资料未提供具体收费、价格或平台支持范围。常见问题包括函数未找到(需清除缓存并核对命名)、参数类型不匹配、SQL 注入风险、权限拒绝和事务死锁,资料给出了对应排查建议。