Please enable JavaScript to view this site.

Das Handbuch für den JobRouter Entwickler

Zum Ausführen von Anfragen mit guzzlehttp sind grundsätzlich folgende Schritte notwendig:

Client initialisieren

Anfrage senden

Antwort verarbeiten (gewünschte Daten aus Antwort auslesen, Fehler behandeln)

Schema

// Client initialisieren

$client = new Client(

    [

        'base_uri' => 'http://example.org/jobrouter/api/rest/v2/',

        'cookies' => true

    ]

);

 

try {

    // Anfrage senden

    $response = $client->get(

        'http://example.org/jobrouter/api/rest/v2/path/to/some/get/route'

    );

    

    $body = $response->getBody();

    

    // Weitere Informationen aus der Antwort auslesen ... 

 

} catch (Exception $e) {

    echo "Fehler bei der Ausführung: " . $e->getMessage();

}

 

Client initialisieren

Zum Ausführen von Anfragen stellt guzzlehttp die Klasse Client bereit. Beim Initialisieren des Clients können einige Optionen angegeben werden:

base_uri – API-URI des Servers. Tragen Sie hier die URL zur JobRouter-REST-API ein. Beim Absenden von Anfragen wird die URL der angeforderten Ressource relativ zu dieser Basis-URL angegeben.

http_errors – Diese Option ist standardmäßig aktiviert (true). Somit werden Antworten mit HTTP-Fehler-Codes (HTTP-Status-Code zwischen 400 und 500) als Exceptions geworfen. Deaktivieren Sie die Option, wenn Sie die Fehlermeldungen in den Antworten selbst behandeln möchten.

verify Diese Option ist standardmäßig aktiviert (true). Somit wird bei der Anfrage der Server anhand seines Zertifikats verifiziert (SSL verification). Wenn Sie JobRouter mit HTTPS-Protokoll verwenden, sollte diese Option auf den Pfad zur Zertifikatdatei des Servers im PEM-Format gesetzt sein ('verify' => '/path/to/my/certificate/cert.pem'). Alternativ können Sie den Pfad in der php.ini als openssl.cafile eintragen. Deaktivieren Sie die Option nur, wenn Sie Anfragen an ein internes Testsystem versenden.

cookies Diese Option hat keine Standardwert. Setzen Sie sie auf true, wird für den Client und nachfolgende Anfragen eine Cookie-Session benutzt.

sink Bestimmt wie und wo die Antwort einer Anfrage gespeichert wird (z. B. als Datei auf dem Dateisystem). Diese Option wird beim Herunterladen von Dateien verwendet.

Nach dem Initialisieren des Clients können die Optionen nicht mehr verändert werden. Information zur weiteren Optionen entnehmen Sie bitte der guzzlehttp-Dokumentation.

Anfrage senden

Zum Senden der HTTP-Anfragen steht die Methode request() zur Verfügung. Außerdem können auch die HTTP-Methoden als Methodenaliase verwendet werden, z. B.:

$client->get('<Ressource-URL>') für GET-Routen,

$client->post('<Ressource-URL>', $postData) für POST-Routen, usw.

Benötigt die Anfrage zusätzliche Daten, werden diese in dem Methodenaufruf mitgeschickt.

Antwort verarbeiten

Die Anfrage-Methoden liefern ein Response-Objekt zurück. Folgende Methoden stehen für dieses Objekt zur Verfügung:

getStatusCode(): HTTP-Status-Code der Antwort ermitteln

getBody(): In der Antwort zurückgelieferte Daten ermitteln

Haben Sie den Client so initialisiert, dass keine Exceptions bei Fehlern geworfen werden (http_errors => false), können Sie die Fehlermeldungen aus dem errors-Array im Body der Antwort auslesen.

$client = new Client(

    [

        'base_uri' => 'http://example.org/jobrouter/api/rest/v2/',

        'cookies' => true,

        'http_errors' => false,

    ] 

);

 

// Nicht-existierenden Benutzer authentifizieren

$response = $client->post('application/sessions', [

    'json' => [

        'username' => 'nonexisting',

        'password' => 'mypassword',

    ],

]);

 

// Fehlermeldung ermitteln

echo "Code: " . $response->getStatusCode() . "\n";

$responseData = json_decode($response->getBody(), true);

$errors = $responseData['errors'];

 

foreach($errors as $error) {

    echo $error[0] . "\n";

}