Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 60b17b30

Von Moritz Bunkus vor mehr als 5 Jahren hinzugefügt

  • ID 60b17b3058bee155d03921bb0dfdabee274e9719
  • Vorgänger 2be804b9
  • Nachfolger 42298d2c

Dokumentation: zu programmatischen API-Aufrufen ergänzt

Unterschiede anzeigen:

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&amp;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