Revision 60b17b30
Von Moritz Bunkus vor mehr als 5 Jahren hinzugefügt
doc/dokumentation.xml | ||
---|---|---|
7825 | 7825 |
</sect2> |
7826 | 7826 |
</sect1> |
7827 | 7827 |
|
7828 |
<sect1 id="dev-programmatic-api-calls" xreflabel="Programmatische API-Aufrufe"> |
|
7829 |
<title>Programmatische API-Aufrufe</title> |
|
7830 |
|
|
7831 |
<sect2 id="dev-programmatic-api-calls.introduction" xreflabel="Einführung in programmatische API-Aufrufe"> |
|
7832 |
<title>Einführung</title> |
|
7833 |
|
|
7834 |
<para> |
|
7835 |
Es ist möglich, Funktionen in kivitendo programmatisch aus anderen Programmen aufzurufen. Dazu ist nötig, dass |
|
7836 |
Authentifizierungsinformationen in jedem Aufruf mitgegeben werden. Dafür gibt es zwei Methoden: die HTTP-»Basic«-Authentifizierung |
|
7837 |
oder die Übergabe als spziell benannte GET-Parameter. Neben den Authentifizierungsinformationen muss auch der zu verwendende Mandant |
|
7838 |
übergeben werden. |
|
7839 |
</para> |
|
7840 |
</sect2> |
|
7841 |
|
|
7842 |
<sect2 id="dev-programmatic-api-calls.client_selection" xreflabel="Mandantenauswahl bei programmatischen API-Aufrufen"> |
|
7843 |
<title>Wahl des Mandanten</title> |
|
7844 |
|
|
7845 |
<para> |
|
7846 |
Der zu verwendende Mandant kann als Parameter <varname>{AUTH}client_id</varname> mit jedem Request mitgeschickt werden. Der Wert |
|
7847 |
muss dabei die Datenbank-ID des Mandanten sein. kivitendo prüft, ob der Account, der über die Authentifizierungsinformationen |
|
7848 |
übergeben wurde, Zugriff auf den angegebenen Mandanten hat. |
|
7849 |
</para> |
|
7850 |
|
|
7851 |
<para> |
|
7852 |
Wird in einem Request kein Mandant mitgegeben, so wird derjenige Mandant genommen, wer als Standardmandant markiert wurde. Gibt es |
|
7853 |
keinen solchen, kommt es zu einer Fehlermeldung. |
|
7854 |
</para> |
|
7855 |
</sect2> |
|
7856 |
|
|
7857 |
<sect2 id="dev-programmatic-api-calls.http_basic_authentication" xreflabel="Programmatische API-Aufrufe mit HTTP-»Basic« authentifizieren"> |
|
7858 |
<title>HTTP-»Basic«-Authentifizierung</title> |
|
7859 |
|
|
7860 |
<para> |
|
7861 |
Für diese Methode muss jedem Request der bekannte HTTP-Header <constant>Authorization</constant> mitgeschickt werden (siehe <ulink |
|
7862 |
url="https://tools.ietf.org/html/rfc7617">RFC 7617</ulink>). Unterstützt wird ausschließlich die »Basic«-Methode. Loginname und |
|
7863 |
Passwort werden bei dieser Methode durch einen Doppelpunkt getrennt und Base64-encodiert im genannten HTTP-Header übertragen. |
|
7864 |
</para> |
|
7865 |
|
|
7866 |
<para> |
|
7867 |
Diese Informationen müssen einen vorhandenen Account benennen. kivitendo prüft genau wie bei Benutzung über den Webbrowser, ob |
|
7868 |
dieser Account Zugriff auf den Mandanten sowie auf die angeforderte Funktion hat. |
|
7869 |
</para> |
|
7870 |
|
|
7871 |
<para> |
|
7872 |
Da die Logininformationen im Klartext im Request stehen, sollte der Zugriff auf kivitendo ausschließlich über HTTPS verschlüsselt |
|
7873 |
erfolgen. |
|
7874 |
</para> |
|
7875 |
</sect2> |
|
7876 |
|
|
7877 |
<sect2 id="dev-programmatic-api-calls.authentication_via_parameters" xreflabel="Programmatische API-Aufrufe mit Parametern authentifizieren"> |
|
7878 |
<title>Authentifizierung mit Parametern</title> |
|
7879 |
|
|
7880 |
<para> |
|
7881 |
Für diese Methode müssen jedem Request zwei Parameter mitgegeben werden: <varname>{AUTH}login</varname> und |
|
7882 |
<varname>{AUTH}password</varname>. Diese Informationen müssen einen vorhandenen Account benennen. kivitendo prüft genau wie bei |
|
7883 |
Benutzung über den Webbrowser, ob dieser Account Zugriff auf den Mandanten sowie auf die angeforderte Funktion hat. |
|
7884 |
</para> |
|
7885 |
|
|
7886 |
<para> |
|
7887 |
Da die Logininformationen im Klartext im Request stehen, sollte der Zugriff auf kivitendo ausschließlich über HTTPS verschlüsselt |
|
7888 |
erfolgen. |
|
7889 |
</para> |
|
7890 |
|
|
7891 |
<note> |
|
7892 |
<para> |
|
7893 |
Die Verwendung dieser Methode ist veraltet. Statt dessen sollte die oben erwähnte HTTP-»Basic«-Authentifizierung verwendet werden. |
|
7894 |
</para> |
|
7895 |
</note> |
|
7896 |
</sect2> |
|
7897 |
|
|
7898 |
<sect2 id="dev-programmatic-api-calls.examples"> |
|
7899 |
<title>Beispiele</title> |
|
7900 |
|
|
7901 |
<para> |
|
7902 |
Das folgende Beispiel nutzt das Kommandozeilenprogramm »curl« und ruft die Funktion auf, die eine vorhandene Telefonnummer in den |
|
7903 |
Ansprechpersonen sucht und dazu Informationen zurückliefert. Dabei wird die HTTP-»Basic«-Authentifizierung genutzt. |
|
7904 |
</para> |
|
7905 |
|
|
7906 |
<programlisting>$ curl --silent --user 'jdoe:SecretPassword!' \ |
|
7907 |
'https://…/controller.pl?action=PhoneNumber/look_up&number=053147110815'</programlisting> |
|
7908 |
</sect2> |
|
7909 |
</sect1> |
|
7910 |
|
|
7828 | 7911 |
<sect1 id="db-upgrade-files" xreflabel="Datenbank-Upgradedateien"> |
7829 | 7912 |
<title>SQL-Upgradedateien</title> |
7830 | 7913 |
|
Auch abrufbar als: Unified diff
Dokumentation: zu programmatischen API-Aufrufen ergänzt