如何在 Moodle LMS 中开发自定义外部 Web Service API
解决 Moodle 插件开发中功能暴露的问题:通过实现 Moodle 标准的 external_api 三方法模式,构建安全、规范的 REST/AJAX 接口,支持外部应用调用课程管理、用户跟踪或报告功能。
为什么需要这个技能
在开发 Moodle 插件或构建配套的移动端 App 时,经常需要从外部访问 Moodle 内部数据或触发特定业务逻辑。由于 Moodle 具有严格的权限控制和复杂的数据库结构,随意创建 PHP 接口会带来严重的安全性风险(如 SQL 注入或权限绕过)。
本技能教你使用 Moodle 官方推荐的 external_api 框架。该框架强制要求定义输入输出结构并验证用户权限,确保你的 API 在满足功能需求的同时,符合 Moodle 的安全审计标准。
适用场景
- 为 Moodle 插件开发自定义的 Web 服务接口。
- 实现 REST/AJAX 端点以进行课程管理或成绩导出。
- 构建第三方应用(如企业 HR 系统)与 Moodle 的数据同步链路。
- 为 Moodle 移动端应用开发特定的后端支持接口。
核心工作流
Moodle 外部 API 遵循严格的“三方法模式”:
- 定义输入参数 (
execute_parameters):使用external_function_parameters规定请求参数的类型(如PARAM_INT,PARAM_TEXT)和是否必填。 - 实现业务逻辑 (
execute):- 参数验证:调用
validate_parameters()确保输入合法。 - 权限校验:通过
validate_context()和require_capability()检查调用者是否有权操作。 - 数据操作:使用参数化查询(如
$DB->get_records_sql)防止注入。
- 参数验证:调用
- 定义返回结构 (
execute_returns):使用external_single_structure或external_multiple_structure规定 API 返回的 JSON 格式。
部署步骤:
- 创建 API 类文件
定义参数 编写逻辑 定义返回 在 db/services.php中注册服务清理 Moodle 缓存。
下载和安装
下载 moodle-external-api-development 中文版 Skill ZIP
解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md。
你可能还需要
暂无推荐