技能 moodle-external-api-development
📦

moodle-external-api-development

低风险 ⚡ 包含脚本⚙️ 外部命令🌐 网络访问

Crear Servicios Web Externos de Moodle

Crear APIs de servicios web personalizados y seguros para Moodle LMS con validación adecuada de parámetros, verificaciones de capacidad y patrones de registro de servicios.

支持: Claude Codex Code(CC)
⚠️ 68
1

下载技能 ZIP

2

在 Claude 中上传

前往 设置 → 功能 → 技能 → 上传技能

3

开启并开始使用

测试它

正在使用“moodle-external-api-development”。 Crear una API externa para obtener el progreso del curso del usuario

预期结果:

  • Clase PHP que extiende external_api con métodos execute_parameters(), execute(), y execute_returns()
  • Definiciones de parámetros usando external_value(PARAM_INT) y external_single_structure
  • Validación de contexto usando validate_context() y verificaciones de capacidad
  • Consulta de base de datos usando consultas parametrizadas para prevención de inyección SQL

正在使用“moodle-external-api-development”。 Registrar el servicio web para acceso móvil

预期结果:

  • Archivo services.php con definición de función incluyendo classname, methodname y capabilities
  • Definición de servicio con flags restrictedusers y enabled
  • Usar MOODLE_OFFICIAL_MOBILE_SERVICE para integración con aplicación móvil

安全审计

低风险
v1 • 2/25/2026

This is a documentation/educational skill for Moodle external API development. Static analyzer flagged 127 potential issues, but evaluation confirms all are false positives. The detected patterns are: (1) Markdown backticks for code formatting flagged as shell commands, (2) Documentation URLs to moodledev.io, (3) Benign keywords in YAML frontmatter triggering false positives. No actual security risks present.

1
已扫描文件
600
分析行数
5
发现项
1
审计总数
低风险问题 (2)
Markdown Backticks Flagged as Shell Commands
Static analyzer detected backticks as 'Ruby/shell backtick execution'. These are markdown code formatting (e.g., `execute_parameters()`), not actual shell commands. No command execution risk.
Documentation URLs Detected
Hardcoded URLs found are legitimate links to Moodle developer documentation (moodledev.io) and example API endpoint placeholders. No data exfiltration risk.
审计者: claude

质量评分

38
架构
100
可维护性
85
内容
22
社区
86
安全
96
规范符合性

你能构建什么

Desarrollador de Plugins de Moodle

Construye APIs externas personalizadas para tu plugin de Moodle para exponer funcionalidad a aplicaciones móviles o sistemas externos

Especialista en Integración LMS

Crea endpoints de servicios web para integrar Moodle con sistemas de información estudiantil o plataformas CRM

Desarrollador de Backend para Aplicaciones Móviles

Desarrolla APIs REST respaldadas por Moodle para aplicaciones móviles personalizadas que acceden a datos de cursos

试试这些提示

Estructura API Básica
Show me how to create a basic external API class in Moodle with the three-method pattern
Definición de Parámetros
How do I define input parameters with validation for a Moodle external API? Include examples for integer, text, and boolean parameters
Implementación de Lógica de Negocio
Write example business logic for a Moodle external API that retrieves course progress, including context validation and capability checks
Registro de Servicio
How do I register a Moodle external web service? Show the services.php file structure with capabilities and AJAX access

最佳实践

  • Siempre validar parámetros usando validate_parameters() antes de procesar
  • Usar validación de contexto y verificaciones de capacidad para aplicar permisos
  • Usar consultas parametrizadas ($DB->get_records_sql) para prevenir inyección SQL
  • Documentar claramente todos los tipos de parámetros y estructuras de retorno

避免

  • Omitir validación de parámetros - siempre usar validate_parameters()
  • Usar SQL crudo sin consultas parametrizadas - usar métodos $DB con parámetros enlazados
  • Omitir verificaciones de capacidad - siempre verificar permisos de usuario
  • Devolver estructuras de datos inconsistentes - coincidir exactamente con la definición de execute_returns()

常见问题

¿Cuál es el patrón de tres métodos para APIs externas de Moodle?
Las APIs externas de Moodle requieren tres métodos: execute_parameters() define la estructura de entrada, execute() contiene la lógica de negocio, y execute_returns() define la estructura de salida.
¿Cómo aseguro mi API externa de Moodle?
Usa validación de contexto (validate_context), verificaciones de capacidad (require_capability), y validación adecuada de parámetros (validate_parameters) para asegurar tu API.
¿Puedo usar mi API externa con la aplicación móvil de Moodle?
Sí, incluye MOODLE_OFFICIAL_MOBILE_SERVICE en tu registro de servicio para habilitar el acceso móvil.
¿Qué tipos de parámetros soporta Moodle?
Moodle soporta PARAM_INT, PARAM_TEXT, PARAM_RAW, PARAM_BOOL, PARAM_FLOAT, PARAM_ALPHANUMEXT, y más para parámetros de API externa.
¿Cómo prevengo la inyección SQL en APIs externas?
Usa la API de base de datos de Moodle ($DB) con consultas parametrizadas usando marcadores con nombre como :userid en lugar de concatenación de strings.
¿Cuál es la diferencia entre tipos de servicio read y write?
El tipo read es para operaciones SELECT que solo recuperan datos. El tipo write es para operaciones INSERT, UPDATE, o DELETE que modifican datos.

开发者详情

文件结构

📄 SKILL.md