Seitenhierarchie
Zum Ende der Metadaten springen
Zum Anfang der Metadaten


Die meisten Seiten in openITCOCKPIT basieren auf unserer JSON API. Du kannst unser Web Interface als "API Request Generator" benutzen, um Objekte in openITCOCKPIT zu finden.


Notiz

Als Methode zur Authentifizierung empfehlen wir dringend die Benutzung von API Keys!


1. API Keys

Öffne dein Benutzerprofil und klicke am Ende der Seite auf "Create new API Key" um einen API Key zu Erstellen.


2. Verbindung zur API mit PHP herstellen (Beispiel)

PHP Beispiel zum Aufbauen einer Verbindung zur API über den PHP GuzzleHTTP Client.


# Install Composer

curl -sS https://getcomposer.org/installer | php

# Install Guzzle
php composer.phar require guzzlehttp/guzzle:~6.0



Host hinzufügen per REST API mit GuzzleHTTP
<?php
require_once 'vendor/autoload.php';

$client = new GuzzleHttp\Client([
    'base_uri'        => 'https://123.123.123.123',
    'headers'         => [
        'Content-Type' => 'application/json',
        'Authorization' => 'X-OITC-API 9346a4444fb4676b4327d8acd44b3d809ed1b14c00dbff253cd56488a4af0e9362a4a77872f1123ecbd328c4502b79694a211edb598d1c69044fa33c52bda3010482f09f61d175fa8d45a4be01d64437'
    ],
    'verify'          => false,
    'cookies'         => true,
    'connect_timeout' => 5,
    'timeout'         => 10
]);
try {
    $response = $client->post("/hosts/add.json",
        [
            'body' => json_encode(
                [
                    'Host' => 
                    [
                        'name' => 'api host',
                        'address' => '127.0.0.1',
                        'container_id' => 1,
                        'hosttemplate_id' => 1,
                        'notification_interval' => NULL,
                        'check_interval' => NULL,
                        'Hostgroup' => [],
                        'retry_interval' => NULL,
                    ],
                ]
            )
        ]
    );
    $response_content = json_decode($response->getBody()->getContents(), true);
    if(isset($response_content['id'])){
    	printf('Host was created successfully. Host ID is: %s%s', $response_content['id'], PHP_EOL);
	}
} catch (Exception $e) {
    echo 'Exception catched: ' . $e->getMessage() . PHP_EOL;
}


3. Benutze paginator oder scroll mode?

Wir nutzen zwei verschiedene Varianten, um geordnete Daten für unsere Listen zu bekommen.

Scroll mode (empfohlen)

Es wird dringend empfohlen, den Scroll-Modus für alle API-Anfragen zum Indizieren und Suchen zu verwenden.

Im Scroll-Modus enthält die Antwort keine genaue Anzahl der in der Datenbank für die angegebenen Filter gefundenen Objekte. Daher wird die API Performance mit diesem Modus deutlich besser ausfallen.

Um festzustellen, ob mehr Datensätze verfügbar sind, gibt die API das Feld "hasNextPage" zurück.

Um den Scroll-Modues zu nutzen, füge die Option `scroll=true` der API URL hinzu.


Beispiel: Rufe alle Hosts ab, die den Output "down" enthalten

{  
   "scroll":{  
      "page":1,
      "limit":25,
      "offset":25,
      "hasPrevPage":false,
      "prevPage":1,
      "nextPage":2,
      "current":1,
      "hasNextPage":true
   }
}

Paginator mode

Im Standard werden API Abfragen im Paginator-Modus ausgeführt. Die Antwort enthält eine exakte Anzahl an in der Datenbank gefundenen Objekten.


Beispiel: Rufe alle Hosts ab, die sich im Status "down" befinden.

"paging":{
   "page":1,
   "current":25,
   "count":66,
   "prevPage":false,
   "nextPage":true,
   "pageCount":3,
   "order":{
      "Hoststatus.current_state":"desc"
   },
   "limit":25,
   "options":[

   ],
   "paramType":"named",
   "queryScope":null
}


4. Erstelle einfache API Abfragen über deinen Web Browser

Über diese Methode ist es sehr einfach API Requests für Index Seiten zu erstellen, um eine gefilterte Liste an Objekten zu bekommen.

Um eine API URL für z.B. Hosts zu Erstellen, nutze unseren Filter auf der "Hosts overview" Seite.

1. Setze die gewünschten Filteroptionen

2. Öffne die Konsole in den Entwickler Tools (drücke F12 in Firefox/Chrome) deines Web Browsers

Aktiviere XMLHttpRequest logs, indem du die XHR Option im Konsolen Tab aktivierst.

3. Drücke den "Refresh" Button oben an der Filter Box und bekomme deine API URL in der Entwicklerkonsole angezeigt

Um die gefilterten Hosts im JSON Format zu bekommen, öffne die angezeigte URL einfach in einem neuen Tab.

Um direkt die Parameter der API URL angezeigt zu bekommen klicke auf die URL in der Konsole und wähle den Parameter Tab aus.

Um Header Informationen zum API Request zu bekommen, öffne den Header Tab.


  • Keine Stichwörter