FAQ sur les services Web

De MoodleDocs
Aller à :navigation, rechercher

Ce document énumère quelques questions populaires du forum Services Web.

Quelle est la différence entre les services Web et le Réseau ?

MNet est utilisé pour authentifier certains utilisateurs d'un site Moodle A vers un site Moodle B.

Les services Web sont des fonctions qui peuvent être appelées par des applications externes (via SOAP, XML-RPC, REST ou AMF).

Je vois le terme "services Web" utilisé de différentes façons, qu'est-ce que cela signifie ?

  1. L'ensemble du système de Moodle est désigné sous le nom de système Service Web Moodle.
  2. Une action particulière (comme la création d'un utilisateur) est connue sous le nom de service Web fonction.
  3. L'administrateur peut activer des groupes de ces fonctions pour une utilisation extérieure, et celles-ci sont connues sous le nom de "Service Web".

Où l'API de service Web est-elle documentée ?

Puisque différents sites Moodle peuvent étendre ou restreindre l'API, et l'API évoluera avec le temps, la meilleure façon de voir l'API exacte pour un site Moodle particulier est de consulter la documentation générée automatiquement.

Documentation complète de l'API

  1. Connectez-vous en tant qu'administrateur
  2. Allez dans le bloc Paramètres d'administration > Plugins > Services Web > Documentation API

Documentation spécifique à un utilisateur

  1. Connectez-vous en tant qu'administrateur, activez le service Web, créez un service et ajoutez-y quelques fonctions Moodle. Voir aussi Créer un service web.
  2. Connectez-vous en tant que non administrateur, et accédez à la documentation du service sur votre page Touche de sécurité.

Pourquoi n'y a-t-il pas beaucoup de fonctions dans l'API ?

Nous avons été très prudents lors de l'ajout de nouvelles fonctions car nous ne voulons pas changer les fonctions de l'API une fois qu'elles sont implémentées. Celles que nous avons dans Moodle 2.0 sont les plus demandés (pour les utilisateurs, les cours, les groupes et les inscriptions).

Au fil du temps, nous ajouterons d'autres fonctions au noyau, en fonction des contributions de la communauté et des demandes de fonctionnalités. Voir la feuille de route [[[:dev:Web_services_Roadmap|feuille de route du service web]].

Vous pouvez également étendre l'API sur votre propre site Moodle en créant vos propres fonctions API (voir question suivante).

Comment puis-je créer une nouvelle fonction de service web ?

La façon la plus simple et la plus recommandée d'ajouter un service web est d'écrire un nouveau plugin local Moodle et d'y implémenter les fonctions du service web. L'administrateur de Moodle n'aura qu'à ajouter le plugin dans Moodle (copier les fichiers dans /local/), les fonctions des services web seront automatiquement ajoutées. Veuillez lire /local/readme.txt pour plus d'informations sur le développement des plugins. Enfin, lisez comment mettre en œuvre un service Web et une fonction de service Web.

Comment puis-je mettre en place un service web ?

Le serveur Moodle SOAP fonctionne-t-il avec JAVA ou .NET ?

Malheureusement, la WSDL générée n'est actuellement pas compatible avec JAVA ou .NET. Voir MDL-28988 et MDL-28989 pour les plans de création d'une WSDL SOAP compatible JAVA.

Comment obtenir un jeton utilisateur à partir d'une application externe ?

Vous pouvez générer et récupérer des jetons utilisateur avec le fichier /login/token.php > Comment obtenir un jeton utilisateur)

Qu'est-ce que l'erreur "exception de contrôle d'accès" ?

Cela signifie qu'un de ces paramètres d'administration a échoué :

  • utilisateur autorisé : la restriction ip n'authentifie pas l'utilisateur (Administration > Plugins > Services Web > Gestion des services > Utilisateurs autorisés > cliquer sur le nom complet de l'utilisateur)
  • utilisateur autorisé : la date de validité est expirée (Administration > Plugins > Services Web > Gestion des services > Utilisateurs autorisés > cliquer sur le nom complet de l'utilisateur)
  • admin a créé le token : la restriction ip n'authentifie pas l'utilisateur (Administration > Plugins > Services Web > Gestion des jetons > vérifier l'état)
  • admin a créé le jeton : la date de validité est expirée (Administration > Plugins > Services Web > Gestion des jetons > vérifier l'état)
  • l'utilisateur ne figure pas dans la liste des utilisateurs autorisés (Administration > Plugins > Services Web > Gestion des services > Utilisateurs autorisés)
  • l'utilisateur n'a pas la capacité requise (Administration > Plugins > Services Web > Gestion des services > Modifier le service)
  • site en mode maintenance
  • l'utilisateur est suspendu
  • l'utilisateur n'est pas confirmé
  • l'utilisateur est supprimé
  • l'authentification utilisateur est définie sur nologin (modifier le profil utilisateur)
  • le mot de passe a expiré (ce qui arrive le plus souvent avec une authentification externe comme LDAP)
  • service web désactivé (Administration > Fonctions avancées)
  • l'utilisateur n'a pas la capacité d'utiliser le protocole de service web utilisé (l'utilisateur doit avoir la capacité "webservice/use:xmlrpc"/"webservice/use:rest"/..., sur le contexte SYSTEM).
  • le jeton d'utilisateur n'existe pas
  • la fonction de service web n'est pas incluse dans le service

Depuis Moodle 2.2, si l'administrateur passe en mode de débogage Moodle >= NORMAL, un message d'erreur explicite sera renvoyé.

D'autres questions?

N'hésitez pas à poster dans le forum sur les services Web sur moodle.org