Webservices FAQ: Unterschied zwischen den Versionen

Aus MoodleDocs
Wechseln zu:Navigation, Suche
(Die Seite wurde neu angelegt: „{{Webservices}} {{Zum Übersetzen}} This document lists some popular questions from the [http://moodle.org/mod/forum/view.php?id=6971 Web Services forum]. == Wh…“)
 
Keine Bearbeitungszusammenfassung
 
(9 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Webservices}}
{{Webservices}}
Dieser Artikel gibt Antwort auf einige häufig gestellte Fragen aus dem [http://moodle.org/mod/forum/view.php?id=6971 Web Services Forum] auf moodle.org.


{{Zum Übersetzen}}
This document lists some popular questions from the [http://moodle.org/mod/forum/view.php?id=6971 Web Services forum].


== What is the difference between web services and MNet ==


[[MNet]] is used to authenticate some users from a Moodle A site into a Moodle B site.
== Was ist der Unterschied zwischen einem Webservice und MNet? ==


Web services are functions that can be called by external applications (via SOAP, XML-RPC, REST or AMF).
[[MNet]] wird verwendet, um Nutzer/innen einer Moodle-Site '''A''' in einer Moodle-Site '''B''' zu authentifizieren.


== I see the term "Web services" used in different ways, what does it mean? ==
Webservices sind Funktionen, die von externen Applikationen in Moodle aufgerufen werden (über SOAP, XML-RPC, REST oder AMF).


# The entire system in Moodle is referred to as the Moodle Web Service system.
== Der Begriff "Webservices" wird in verschiedenen Zusammenhängen verwendet, was bedeutet er? ==
# A particular action (like creating a user) is known as a Web service '''function'''.
# The admin can enable groups of these functions for outside use, and these are known as a "Web service".


== Where is the Web Service API documented? ==
# Das gesamte Webservices-System in Moodle wird als Moodle-Webservice-System bezeichnet.
# Eine einzelne Aktion (z.B. das Anlegen eines Nutzers) wird als Webservice-Funktion bezeichnet.
# Als Administrator/in können Sie mehrere dieser Funktionen für die Verwendung "von außen" aktivieren, und diese Funktionen werden als "Webservice" bezeichnet.


Since different Moodle sites can extend or restrict the API, and the API will evolve over time, the best way to see the exact API for a particular Moodle site is to look at the automatically generated documentation.
== Wo ist die Webservice API dokumentiert? ==
Da verschiedene Moodle-Sites die API erweitern oder einschränken können, ändert sich die API im Laufe der Zeit. Die beste Möglichkeit, die genaue API für eine spezielle Moodle-Site zu sehen, ist, sich die automatisch generierte Dokumentation anzusehen.


'''Full API documentation'''
'''Vollständige API Dokumentation'''
# Connect as admin
# Melden Sie sich als Administrator/in an.
# Go to Administration Settings block > Plugins > Web services > API documentation
# Gehen Sie auf die Seite ''Website-Administration'' (oder im Block ''[[Einstellungen-Block|Einstellungen]]) > Website-Administration'')'' > Plugins > Webservices > API Dokumentation''.


'''Specific documentation to a user'''
'''Spezifische Dokumentation für Nutzer/innen'''
# Connect as admin, enable web service, create a service and add some Moodle functions to it. Also see [[How_to_create_and_enable_a_web_service]].
# Melden Sie sich als Administrator/in an, aktivieren Sie [[Webservices]] als Zusatzoption, legen Sie einen Webservice an und fügen Sie einige Moodle-Funktionen zu diesem Service hinzu, siehe [[Webservices nutzen]].
# connect as non admin, and access the service documentation on your [[How_to_get_a_security_key|security keys page]].
# Melden Sie sich als Nicht-Admin an und gehen Sie auf Ihre [[Sicherheitsschlüssel]]-Seite.


== Why are there not many functions in the API? ==
== Warum gibt es in der API nur wenige Funktionen? ==
Wir sind sehr vorsichtig mit dem Hinzufügen von Funktionen, weil wir die API der Funktionen möglichst nicht ändern möchten, sobald sie einmal implementiert sind. Die Funktionen, die es in Moodle 2 gibt, waren die am meisten geforderten (für Nutzer/innen, Kurse, Gruppen und Einschreibungen). 


We have been very careful when adding new functions because we don't want to be changing the API functions once they are implementedThe ones we have in Moodle 2.0 are the most commonly requested ones (for users, courses, groups and enrolments). 
Mit der Zeit werden wir weitere Funktionen hinzufügen, basiert auf die Beiträge der Community und gestellte AnforderungenSiehe [[:dev:Web_services_Roadmap|Webservices Roadmap]].


We will add more functions to core over time, based on contributions from the community and feature requests.  See the [[:dev:Web_services_Roadmap|web service roadmap]].
Sie können auch die API in Ihrer eigenen Moodle-Site erweitern, indem Sie eigene API-Funktionen implementieren (siehe nächste Frage).


You can also extend the API on your own Moodle site by creating your own API functions (see next question).
== Wie kann ich eine neue Webservice-Funktion implementieren? ==
Der einfachste und empfohlene Weg ist es, ein neues lokales Moodle-Plugin zu entwickeln und die Webservice-Funktionen dort zu implementieren. Die Moodle-Administration muss dieses Plugin dann nur in Moodle installieren (im Verzeichnis ''/moodle/local/''), die Webservice-Funktionen werden automatisch angelegt. Weitere Informationen zur Plugin-Entwicklung finden Sie in der Datei ''/moodle/local/readme.txt''. Lesen Sie außerdem die Entwickler-Dokumentation, siehe [[:dev:Creating_a_web_service_and_a_web_service_function|how to implement a web service and a web service function]].


== How can I create a new web service function? ==
== Wie kann ich einen Webservice aufsetzen? ==


The easiest and recommended way to add a web service is to write a new Moodle local plugin and to implement the web service functions there. The Moodle administrator will just need to add the plugin in Moodle (copy the files in /local/), the web service functions will be automatically added. Please read /local/readme.txt for more information about plugin development. Finally read  [[:dev:Creating_a_web_service_and_a_web_service_function|how to implement a web service and a web service function]].
* Siehe [[Webservices nutzen]].  
* Auf der Seite ''Website-Administration'' (oder im Block ''[[Einstellungen-Block|Einstellungen]]) > Website-Administration'')'' > Plugins > Webservices > Übersicht'' finden Sie zwei Anwendungsbeispiele.
* Wenn Sie Fragen haben, nutzen Sie das [http://moodle.org/mod/forum/view.php?id=6971 Webservices Forum] auf moodle.org.


== How can I set up a web service? ==
== Arbeitet der Moodle SOAP Server mit JAVA oder .NET? ==
Leider ist das generierte WSDL momentan nicht kompatibel mit JAVA oder .NET. Siehe MDL-28988 und MDL-28989 für Pläne, ein JAVA-kompatibles SOAP WSDL zu generieren.


* See the document [[How_to_create_and_enable_a_web_service| How to create and enable a web service]].
== Wie bekomme ich ein Nutzer-Token von einer externen Applikation? ==
* ''Settings > Site administration > Plugins > Web services > Overview'' explains two use cases.
Nutzen Sie das PHP-Skript ''/moodle/login/token.php'', siehe Entwickler-Dokumentation [[:dev:Creating_a_web_service_client#How_to_get_a_user_token|How to get a user token]].
* Finally ask questions on the [http://moodle.org/mod/forum/view.php?id=6971 Web Services forum]


== Does the Moodle SOAP server work with JAVA or .NET? ==
== Was bedeutet die Fehlermeldung ''Access control exception''? ==
Das bedeutet, dass eine der folgenden Einstellungen einen Fehler verursacht:
* autorisierte Nutzer/innen: die IP-Beschränkung kann den Nutzer nicht authentifizieren (''Website-Administration'' (oder im Block ''[[Einstellungen-Block|Einstellungen]]) > Website-Administration'')'' > Plugins > Webservices > Externe Services > Autoriserte Nutzer/innen'': Nutzername anklicken).
* autorisierte Nutzer/innen: das Gültigkeitsdatum ist abgelaufen (''Website-Administration'' (oder im Block ''[[Einstellungen-Block|Einstellungen]]) > Website-Administration'')'' > Plugins > Webservices > Externe Services > Autorisierte Nutzer/innen'': Nutzername anklicken).
* der Admin hat das Token generiert: die IP-Beschränkung kann den Nutzer nicht authentifizieren (''Website-Administration'' (oder im Block ''[[Einstellungen-Block|Einstellungen]]) > Website-Administration'')'' > Plugins > Webservices > Tokens verwalten'': Status prüfen).
* der Admin hat das Token generiert: das Gültigkeitsdatum ist abgelaufen (''Website-Administration'' (oder im Block ''[[Einstellungen-Block|Einstellungen]]) > Website-Administration'')'' > Plugins > Webservices > Tokens verwalten'': Status prüfen).
* Der/die Nutzer/in ist nicht in der Liste der autorisierten Nutzer/innen enthalten: ''Website-Administration'' (oder im Block ''[[Einstellungen-Block|Einstellungen]]) > Website-Administration'')'' > Plugins > Webservices > Externe Services > Autorisierte Nutzer/innen''.
* Der/die Nutzer/in hat nicht das erforderliche Recht: ''Website-Administration'' (oder im Block ''[[Einstellungen-Block|Einstellungen]]) > Website-Administration'')'' > Plugins > Webservices > Externe Services'': Service bearbeiten.
* Die Moodle-Site ist im [[Wartungsmodus]].
* Das Nutzerkonto ist gesperrt.
* Das Nutzerkonto ist nicht bestätigt.
* das Nutzerkonto ist gelöscht.
* Die Authentifizierungsmethode für das Nutzerkonto ist auf ''Kein Login'' gesetzt.
* Das Kennwort ist abgelaufen (am wahrscheinlichsten bei externen Authentifizierungsmethoden, z.B. über einen [[LDAP-Server]]).
* Webservics sind deaktiviert (''Website-Administration'' (oder im Block ''[[Einstellungen-Block|Einstellungen]]) > Website-Administration'')'' > Zusatzoptionen'').
* Der/die Nutzer/in hat nicht das Recht, das Webservice-Protokoll zu verwenden (die Fähigkeiten [[Capabilities/webservice/xmlrpc:use]], [[Capabilities/webservice/rest:use]], [[Capabilities/webservice/soap:use]] bzw. [[Capabilities/webservice/amf:use]] müssen im System-Kontext auf ''erlauben'' gesetzt sein).
* Das Nutzer-Token existiert nicht.
* Die Webservice-Funktion ist nicht zum Service hinzugefügt.


Unfortunately the generated WSDL isn't currently compatible with JAVA or .NET. See MDL-28988 and MDL-28989 for plans to create a JAVA-compatible SOAP WSDL.
Wenn Sie als Administrator/in den [[Debugging|Debug-Modus]] aktivieren, erhalten Sie detailliertere Fehlerinformationen.


== How to get a user token from an external application? ==
==Siehe auch==
you can generate and retrieve user tokens with the /login/token.php file => [[:dev:Creating_a_web_service_client#How_to_get_a_user_token|How to get a user token]]


== What is the 'Access control exception' error ==
* [http://moodle.org/mod/forum/view.php?id=6971 Webservices Forum] - Diskussionsforum im Kurs ''Using Moodle'' auf moodle.org
It means that one of this admin setting has failed:
* authorised user: ip restriction fails to authenticate the user (Administration > Plugins > Web services > Manage services > Authorized users > click on user full name)
* authorised user: valid date is expired (Administration > Plugins > Web services > Manage services > Authorized users > click on user full name)
* admin created the token: ip restriction fails to authenticate the user (Administration > Plugins > Web services > Manage tokens > check the status)
* admin created the token: valid date is expired (Administration > Plugins > Web services > Manage tokens > check the status)
* the user is not listed in the authorized list (Administration > Plugins > Web services > Manage services > Authorized users)
* the user hasn't the required capability (Administration > Plugins > Web services > Manage services > Edit service)
* site in maintenance mode
* user is suspended
* user is not confirmed
* user is deleted
* the user authentication is set to nologin (edit the user profile)
* password expired (most likely happens with external authentication like LDAP)
* web service disabled (Administration > Advanced features)
* user doesn't have the capability to use the used web service protocol (user should have the capability 'webservice/use:xmlrpc'/'webservice/use:rest'/..., on SYSTEM context).
* the user token doesn't exist
* the web service function is not included in the service
 
Since Moodle 2.2, if the administrator turns Moodle debug mode >= NORMAL, then an explicit error message will be returned.
 
==See also==
 
* Using Moodle [http://moodle.org/mod/forum/view.php?id=6971 Web Services forum]


[[Category:Moodle-Netzwerk]]
[[Category:Moodle-Netzwerk]]
Zeile 82: Zeile 78:


[[en:Web services FAQ]]
[[en:Web services FAQ]]
[[ja:ウェブサービスFAQ]]

Aktuelle Version vom 28. März 2019, 10:35 Uhr

Dieser Artikel gibt Antwort auf einige häufig gestellte Fragen aus dem Web Services Forum auf moodle.org.


Was ist der Unterschied zwischen einem Webservice und MNet?

MNet wird verwendet, um Nutzer/innen einer Moodle-Site A in einer Moodle-Site B zu authentifizieren.

Webservices sind Funktionen, die von externen Applikationen in Moodle aufgerufen werden (über SOAP, XML-RPC, REST oder AMF).

Der Begriff "Webservices" wird in verschiedenen Zusammenhängen verwendet, was bedeutet er?

  1. Das gesamte Webservices-System in Moodle wird als Moodle-Webservice-System bezeichnet.
  2. Eine einzelne Aktion (z.B. das Anlegen eines Nutzers) wird als Webservice-Funktion bezeichnet.
  3. Als Administrator/in können Sie mehrere dieser Funktionen für die Verwendung "von außen" aktivieren, und diese Funktionen werden als "Webservice" bezeichnet.

Wo ist die Webservice API dokumentiert?

Da verschiedene Moodle-Sites die API erweitern oder einschränken können, ändert sich die API im Laufe der Zeit. Die beste Möglichkeit, die genaue API für eine spezielle Moodle-Site zu sehen, ist, sich die automatisch generierte Dokumentation anzusehen.

Vollständige API Dokumentation

  1. Melden Sie sich als Administrator/in an.
  2. Gehen Sie auf die Seite Website-Administration (oder im Block Einstellungen) > Website-Administration) > Plugins > Webservices > API Dokumentation.

Spezifische Dokumentation für Nutzer/innen

  1. Melden Sie sich als Administrator/in an, aktivieren Sie Webservices als Zusatzoption, legen Sie einen Webservice an und fügen Sie einige Moodle-Funktionen zu diesem Service hinzu, siehe Webservices nutzen.
  2. Melden Sie sich als Nicht-Admin an und gehen Sie auf Ihre Sicherheitsschlüssel-Seite.

Warum gibt es in der API nur wenige Funktionen?

Wir sind sehr vorsichtig mit dem Hinzufügen von Funktionen, weil wir die API der Funktionen möglichst nicht ändern möchten, sobald sie einmal implementiert sind. Die Funktionen, die es in Moodle 2 gibt, waren die am meisten geforderten (für Nutzer/innen, Kurse, Gruppen und Einschreibungen).

Mit der Zeit werden wir weitere Funktionen hinzufügen, basiert auf die Beiträge der Community und gestellte Anforderungen. Siehe Webservices Roadmap.

Sie können auch die API in Ihrer eigenen Moodle-Site erweitern, indem Sie eigene API-Funktionen implementieren (siehe nächste Frage).

Wie kann ich eine neue Webservice-Funktion implementieren?

Der einfachste und empfohlene Weg ist es, ein neues lokales Moodle-Plugin zu entwickeln und die Webservice-Funktionen dort zu implementieren. Die Moodle-Administration muss dieses Plugin dann nur in Moodle installieren (im Verzeichnis /moodle/local/), die Webservice-Funktionen werden automatisch angelegt. Weitere Informationen zur Plugin-Entwicklung finden Sie in der Datei /moodle/local/readme.txt. Lesen Sie außerdem die Entwickler-Dokumentation, siehe how to implement a web service and a web service function.

Wie kann ich einen Webservice aufsetzen?

  • Siehe Webservices nutzen.
  • Auf der Seite Website-Administration (oder im Block Einstellungen) > Website-Administration) > Plugins > Webservices > Übersicht finden Sie zwei Anwendungsbeispiele.
  • Wenn Sie Fragen haben, nutzen Sie das Webservices Forum auf moodle.org.

Arbeitet der Moodle SOAP Server mit JAVA oder .NET?

Leider ist das generierte WSDL momentan nicht kompatibel mit JAVA oder .NET. Siehe MDL-28988 und MDL-28989 für Pläne, ein JAVA-kompatibles SOAP WSDL zu generieren.

Wie bekomme ich ein Nutzer-Token von einer externen Applikation?

Nutzen Sie das PHP-Skript /moodle/login/token.php, siehe Entwickler-Dokumentation How to get a user token.

Was bedeutet die Fehlermeldung Access control exception?

Das bedeutet, dass eine der folgenden Einstellungen einen Fehler verursacht:

  • autorisierte Nutzer/innen: die IP-Beschränkung kann den Nutzer nicht authentifizieren (Website-Administration (oder im Block Einstellungen) > Website-Administration) > Plugins > Webservices > Externe Services > Autoriserte Nutzer/innen: Nutzername anklicken).
  • autorisierte Nutzer/innen: das Gültigkeitsdatum ist abgelaufen (Website-Administration (oder im Block Einstellungen) > Website-Administration) > Plugins > Webservices > Externe Services > Autorisierte Nutzer/innen: Nutzername anklicken).
  • der Admin hat das Token generiert: die IP-Beschränkung kann den Nutzer nicht authentifizieren (Website-Administration (oder im Block Einstellungen) > Website-Administration) > Plugins > Webservices > Tokens verwalten: Status prüfen).
  • der Admin hat das Token generiert: das Gültigkeitsdatum ist abgelaufen (Website-Administration (oder im Block Einstellungen) > Website-Administration) > Plugins > Webservices > Tokens verwalten: Status prüfen).
  • Der/die Nutzer/in ist nicht in der Liste der autorisierten Nutzer/innen enthalten: Website-Administration (oder im Block Einstellungen) > Website-Administration) > Plugins > Webservices > Externe Services > Autorisierte Nutzer/innen.
  • Der/die Nutzer/in hat nicht das erforderliche Recht: Website-Administration (oder im Block Einstellungen) > Website-Administration) > Plugins > Webservices > Externe Services: Service bearbeiten.
  • Die Moodle-Site ist im Wartungsmodus.
  • Das Nutzerkonto ist gesperrt.
  • Das Nutzerkonto ist nicht bestätigt.
  • das Nutzerkonto ist gelöscht.
  • Die Authentifizierungsmethode für das Nutzerkonto ist auf Kein Login gesetzt.
  • Das Kennwort ist abgelaufen (am wahrscheinlichsten bei externen Authentifizierungsmethoden, z.B. über einen LDAP-Server).
  • Webservics sind deaktiviert (Website-Administration (oder im Block Einstellungen) > Website-Administration) > Zusatzoptionen).
  • Der/die Nutzer/in hat nicht das Recht, das Webservice-Protokoll zu verwenden (die Fähigkeiten Capabilities/webservice/xmlrpc:use, Capabilities/webservice/rest:use, Capabilities/webservice/soap:use bzw. Capabilities/webservice/amf:use müssen im System-Kontext auf erlauben gesetzt sein).
  • Das Nutzer-Token existiert nicht.
  • Die Webservice-Funktion ist nicht zum Service hinzugefügt.

Wenn Sie als Administrator/in den Debug-Modus aktivieren, erhalten Sie detailliertere Fehlerinformationen.

Siehe auch