Compétences moodle-external-api-development
📦

moodle-external-api-development

Risque faible ⚡ Contient des scripts⚙️ Commandes externes🌐 Accès réseau

Créer des services web externes Moodle

Créer des API de services web personnalisés sécurisés pour Moodle LMS avec une validation des paramètres appropriée, des vérifications de capacités et des modèles d'enregistrement de services.

Prend en charge: Claude Codex Code(CC)
🥉 72 Bronze
1

Télécharger le ZIP du skill

2

Importer dans Claude

Allez dans Paramètres → Capacités → Skills → Importer un skill

3

Activez et commencez à utiliser

Tester

Utilisation de "moodle-external-api-development". Créer une API externe pour obtenir la progression du cours de l'utilisateur

Résultat attendu:

  • Classe PHP étendant external_api avec les méthodes execute_parameters(), execute() et execute_returns()
  • Définitions de paramètres utilisant external_value(PARAM_INT) et external_single_structure
  • Validation de contexte utilisant validate_context() et vérifications de capacités
  • Requête de base de données utilisant des requêtes paramétrées pour la prévention des injections SQL

Utilisation de "moodle-external-api-development". Enregistrer le service web pour l'accès mobile

Résultat attendu:

  • Fichier services.php avec définition de fonction incluant classname, methodname et capabilities
  • Définition de service avec les drapeaux restrictedusers et enabled
  • Utiliser MOODLE_OFFICIAL_MOBILE_SERVICE pour l'intégration d'application mobile

Audit de sécurité

Risque faible
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
Fichiers analysés
600
Lignes analysées
5
résultats
1
Total des audits
Problèmes à risque faible (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.
Audité par: claude

Score de qualité

38
Architecture
100
Maintenabilité
85
Contenu
50
Communauté
86
Sécurité
96
Conformité aux spécifications

Ce que vous pouvez construire

Développeur de plugins Moodle

Créer des API externes personnalisées pour votre plugin Moodle afin d'exposer des fonctionnalités aux applications mobiles ou aux systèmes externes

Spécialiste d'intégration LMS

Créer des points de terminaison de services web pour intégrer Moodle avec les systèmes d'information des étudiants ou les plateformes CRM

Développeur backend d'applications mobiles

Développer des API REST basées sur Moodle pour des applications mobiles personnalisées accédant aux données de cours

Essayez ces prompts

Structure d'API de base
Montrez-moi comment créer une classe d'API externe de base dans Moodle avec le modèle à trois méthodes
Définition des paramètres
Comment définir des paramètres d'entrée avec validation pour une API externe Moodle ? Incluez des exemples pour les paramètres entier, texte et booléen
Implémentation de la logique métier
Écrivez un exemple de logique métier pour une API externe Moodle qui récupère la progression du cours, incluant la validation de contexte et les vérifications de capacités
Enregistrement du service
Comment enregistrer un service web externe Moodle ? Montrez la structure du fichier services.php avec les capacités et l'accès AJAX

Bonnes pratiques

  • Validez toujours les paramètres avec validate_parameters() avant le traitement
  • Utilisez la validation de contexte et les vérifications de capacités pour appliquer les permissions
  • Utilisez des requêtes paramétrées ($DB->get_records_sql) pour prévenir les injections SQL
  • Documentez clairement tous les types de paramètres et les structures de retour

Éviter

  • Ignorer la validation des paramètres - utilisez toujours validate_parameters()
  • Utiliser du SQL brut sans requêtes paramétrées - utilisez les méthodes $DB avec des paramètres liés
  • Omettre les vérifications de capacités - vérifiez toujours les permissions utilisateur
  • Retourner des structures de données incohérentes - correspondez exactement à la définition de execute_returns()

Foire aux questions

Quel est le modèle à trois méthodes pour les API externes Moodle ?
Les API externes Moodle nécessitent trois méthodes : execute_parameters() définit la structure d'entrée, execute() contient la logique métier, et execute_returns() définit la structure de sortie.
Comment sécuriser mon API externe Moodle ?
Utilisez la validation de contexte (validate_context), les vérifications de capacités (require_capability) et la validation appropriée des paramètres (validate_parameters) pour sécuriser votre API.
Puis-je utiliser mon API externe avec l'application mobile Moodle ?
Oui, incluez MOODLE_OFFICIAL_MOBILE_SERVICE dans votre enregistrement de service pour activer l'accès mobile.
Quels types de paramètres Moodle prend-il en charge ?
Moodle prend en charge PARAM_INT, PARAM_TEXT, PARAM_RAW, PARAM_BOOL, PARAM_FLOAT, PARAM_ALPHANUMEXT et plus encore pour les paramètres d'API externes.
Comment prévenir les injections SQL dans les API externes ?
Utilisez l'API de base de données de Moodle ($DB) avec des requêtes paramétrées utilisant des placeholders nommés comme :userid au lieu de la concaténation de chaînes.
Quelle est la différence entre les types de service lecture et écriture ?
Le type lecture est pour les opérations SELECT qui ne font que récupérer des données. Le type écriture est pour les opérations INSERT, UPDATE ou DELETE qui modifient les données.

Détails du développeur

Structure de fichiers

📄 SKILL.md