المهارات moodle-external-api-development
📦

moodle-external-api-development

مخاطر منخفضة ⚡ يحتوي على سكربتات⚙️ الأوامر الخارجية🌐 الوصول إلى الشبكة

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.

يدعم: Claude Codex Code(CC)
⚠️ 67 ضعيف
1

تنزيل ZIP المهارة

2

رفع في Claude

اذهب إلى Settings → Capabilities → Skills → Upload skill

3

فعّل وابدأ الاستخدام

اختبرها

استخدام "moodle-external-api-development". Créer une API externe pour obtenir la progression du cours de l'utilisateur

النتيجة المتوقعة:

  • 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

استخدام "moodle-external-api-development". Enregistrer le service web pour l'accès mobile

النتيجة المتوقعة:

  • 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

التدقيق الأمني

مخاطر منخفضة
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
المحتوى
20
المجتمع
86
الأمان
96
الامتثال للمواصفات

ماذا يمكنك بناءه

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

جرّب هذه الموجهات

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

أفضل الممارسات

  • 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

تجنب

  • 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()

الأسئلة المتكررة

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.

تفاصيل المطور

بنية الملفات

📄 SKILL.md