REST Webservices – TecArt-CRM Developer-Wiki

REST Webservices

Aus TecArt-CRM Developer-Wiki

Wechseln zu: Navigation, Suche

Modulen



Nutzen der CRM REST-API:

Mit den CRM REST-APIs kann man einfach die Funktionen über einen HTTP-Aufruf einer URL steuern, um Daten aus dem CRM zu holen oder in das System zu schreiben. Die einkommenden Daten können in den Formaten XML, JSON oder als serialisierte Zeichenketten geliefert werden.

Zurückgeliefert werden die Daten als XML, JSON-, serialisierte Zeichenkette oder ein Textstring mit einer Fehlermeldung.


  • Erforderliche REST Input Parameters:
Parameter Beschreibung
method Name der aufgerufenen Methode.
request_type Data format der input parameters (JSON, XML, serialize). Wird nur beim POST Aufruf benötigt.
response_type Erwünschte data format für das Ergebnis (JSON, XML, serialize)
params Eingabedata


  • Format des XML Inputs:

Wenn Sie XML als Format für die Eingabe der Daten benutzen möchten, verwenden Sie bitte folgende XML Vorlage:

<?xml version='1.0' encoding='utf-8'?>
<elements>
   <params>
     <param1>...</param1>
     <param2>...</param2>
   </params>
</elements>


  • CRM REST-API unterstützt GET und POST Requests:

Alle Funktionen unterstützen POST Requests. GET Requests sollten nur bei den Funktionen verwendet werden, welche Daten aus dem CRM System lesen.


Beispiel 1: Anmelden am CRM-System. Benutzt GET Request.

Beim Aufruf wird die Session-ID im JSON-Format zurückgeliefert.


<?php
 
/* Achtung: beim Aufruft als GET Request müssen die Input Daten unformatiert übergeben werden. 
 * Deshalb ist es nicht nötig, 'request_type' zu setzen
 */
$url = "http://hostname/dirname/rest/index.php/logon?method=crmLogin&response_type=JSON&username=testuser&password=testpassword";
 
$response = file_get_contents($url);
 
$session_id = json_decode($response);
echo "Session ID: " . $session_id;
 
?>


Beispiel 2: Anmelden am CRM-System. Benutzt POST Request.

Die Login-Daten werden im XML-Format übergeben und beim Aufruf wird die Session-ID im Serialize-Format zurückgeliefert.


<?php
 
$xml = "<?xml version='1.0' encoding='utf-8'?>
        <elements>
            <params>
                <username>testuser</username>
                <password>testpassword</password>
            </params>
        </elements>";
 
$args = array('request_type'  => 'XML',
              'response_type' => 'serialize',
              'method'        => 'crmLogin',
              'params'        => $xml);
 
$curl = curl_init('http://hostname/dirname/rest/index.php/logon');
 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
 
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($args));
 
$response = curl_exec( $curl ); 
 
curl_close( $curl );
 
$session_id = unserialize($response);
echo "Session ID: " . $session_id;
 
?>



Das CRM-REST-API Objekt:

Wenn Sie PHP mit der Version >= 5.0 für die Implementierung der CRM REST-API verwenden, wird empfohlen, unsere Crm_rest_api zu benutzen. Es vereinfacht und ermöglicht eine übersichtlichere Implementierung. Sie können die REST-Methoden wie Methoden der Klasse crm_rest_api aufrufen.

  • Wenn ein Fehler auftritt, wird eine Exception mit Fehlermeldung geworfen.


Beispiel 1: Anmelden am CRM-System. Beim Aufruf wird die Session-ID zurückgeliefert.

<?php
 
// include the crm_rest_api PHP file
include_once 'crm_rest_api.php';
 
try {
    // URL zu dem gewünschten Modul (Logon)
    $logon = new crm_rest_api("http://hostname/dirname/rest/index.php/logon");
 
    $params = array('username' => 'testuser', 'password' => 'testpassword');
 
    // Aufruf zur crmLogin Method.
    $session_id = $logon->crmLogin($params);
 
    echo '<b>Session ID:</b><br>'.$session_id.'<br><br>';
}
catch (Exception $e) {
    echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}
 
?>


Beispiel 2: Hole alle Termine vom Benutzer mit der ID = 4 und für das Jahr 2011.

<?php
 
include_once 'crm_rest_api.php';
 
try {
    // Session ID für den HTTP Aufruf holen.
    $logon = new crm_rest_api("http://hostname/dirname/rest/index.php/logon");
 
    $params = array('username' => 'testuser', 'password' => 'testpassword');
    $session_id = $logon->crmLogin($params);
 
    // Alle Termine für den User mit ID:4 und für das Jahr 2011 holen
    $dates = new crm_rest_api("http://hostname/dirname/rest/index.php/dates");
    $params = array('session_id' => $session_id, 'userid' => 4, 'day' => 0, 'month' => 0, 'year' => 2011);
 
    $result = $dates->crmgetAppointments($params);
 
    if(is_object($result)) { // listing the appointments subject
        $appointments = get_object_vars($result);
 
        foreach($appointments as $appointment) {
            echo $appointment->subject . "<br>";
        }
    }
    else {
        echo 'Es wurde kein Termin für den Zeitraum gefunden!';
    }
 
}
catch (Exception $e) {
    echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}
 
?>