Zum Inhalt

Web API (beta)

Achtung

Aktuell steht die Web API Funktionalität ausschließlich im Beta-Modus zur Verfügung. Um den Beta-Modus von LOGINventory zu aktivieren, folgen Sie dieser Anleitung!

Über die LOGINventory Web API lassen sich mittels HTTP GET Requests Daten aus der LOGINventory-Datenbank abfragen. Diese Art der Schnittstelle ist für verschiedene Anwendungsszenarien geeignet, z.B. um einzelne Live-Daten mit einem anderen System direkt aus LOGINventory zu holen, oder um Massen-Exporte in Drittsysteme vorzunehmen. Mögliche Szenarien werden unten genauer beschrieben.

Einrichtung von Web API Endpunkten

Um den Zugriff über die Web API zu ermöglichen, muss ein Web API Endpunkt veröffentlicht werden.

Wichtig

Ein Web API Endpunkt definiert den "Einsprungspunkt" für Zugriffe. Die Abfrage, auf der der Endpunkt definiert wird, bestimmt damit welche Daten über die API abgefragt werden können. Ebenso sind durch den Endpunkt auch die Ergebnismengen der Abfragen unterhalb des Einsprungspunkts erreichbar, sodass auch Daten zu mehrere 1:n-Beziehungen aus der Datenbank abgerufen werden können.

Voraussetzungen

Damit der Zugriff auf die Web API möglich ist, muss zunächst der Web Viewer veröffentlicht sein. Falls der Web Viewer bereits in einer Version veröffentlicht war, in der die Web API Funktionalität noch nicht enthalten war, kann ein erneutes Veröffentlichen des Web Viewers notwendig sein. Dies wird jedoch auch beim Aktivieren eines Web API Endpunkts geprüft.

Nur Nutzer, die über die LOGINventory-Berechtigungsstufe Administrator verfügen, können Endpunkte anlegen oder bearbeiten.

Achtung

Aktuell steht die Web API Funktionalität ausschließlich im Beta-Modus zur Verfügung. Um den Beta-Modus von LOGINventory zu aktivieren, folgen Sie dieser Anleitung!

Aktivieren eines Web API Endpunkts

Web API Endpunkte können auf allen Abfragen in der Baumstruktur positioniert werden. Die Ergebnismenge der Abfrage bestimmt dabei, welche Daten über den Endpunkt erreichbar sind.

Um den Endpunkt auf einer Abfrage einzurichten, kann über das Ribbon-Menü Knoten-Eigenschaften zum Reiter Web API Endpunkt navigiert werden.

In diesem Menü stehen dann die Optionen zur Verfügung, den Endpunkt zu aktivieren, einen eindeutigen Namen zu vergeben und optional einen Filter-Pfad zu spezifizieren.

Der vergebene Name findet sich dann auch in der Web API URL wieder, unter welcher die Daten abgerufen werden können. Die URL kann über einen entsprechenden Button in die Zwischenablage kopiert werden.

Info

Optional besteht in diesem Dialog auch die Möglichkeit mit Hilfe des Filter Pattern Generators eine URL zu erstellen, die einen Filter enthält. So kann mit Hilfe des Generators eine Filterbedingung erstellt werden, die dann in die URL "übersetzt" wird. Diese Funktion kann hilfreich zu sein, um Drittsysteme anzubinden, die nicht die komplette Ergebnismenge abrufen sollen, sondern z.B. nur die Daten zu einem bestimmten Gerät.Der Filter Pattern Generator muss jedoch nicht verwendet werden, um eine gefilterte URL zu erstellen. Wenn Ihnen die Syntax bekannt ist, können Sie beim Abruf der Daten ebenso Filter an die URL hinzufügen, ohne dass diese vorher im Generator erstellt wurden.

Definition der Datenstruktur

Wie bereits eingangs erwähnt, stehen über den Web API Endpunkt die Daten zur Verfügung, die in der Ergebnismenge der Abfrage enthalten sind. Das bedeutet, dass sowohl die Spalten-Auswahl der Abfrage, als auch im Abfrage-Editor definierte Filterbedingungen beachtet werden.

Info

Vom Nutzer definierte Anpassungen des Layouts, wie Spaltenreihenfolgen, Ausblenden von Spalten oder Filter in der Datenansicht, haben keinen Einfluss auf die über den Endpunkt zur Verfügung stehenden Daten.

Wenn unterhalb der Abfrage, auf der der Endpunkt eingerichtet wurde, sich andere Abfragen befinden, dann sind die Ergebnismengen dieser Abfragen ebenso über den Endpunkt abrufbar. Auf diese Weise können also auch mehrere 1:n-Beziehungen zur Basistabelle der Abfrage über den Endpunkt abgerufen werden, also z.B. zu einem Gerät sowohl Geräte-Detail (1:1-Beziehung) als auch Informationen zu den dort vorhandenen Softwarepaketen (1:n-Beziehung) und den verbauten Arbeitsspeicher-Riegeln (1:n-Beziehung).

Wichtig

Unterhalb von Device-Abfragen können nur Abfragen verwendet werden, deren Basistabelle eine direkte Navigation zur Entität Device hat. Dies sind meistens Abfragen, deren Basistabelle auf Info endet, z.B. SoftwarePackageInfo oder MemoryModuleInfo. Alle Abfragen, die sich in der Baumstruktur unterhalb von Software, Hardware oder Konfiguration im Unterordner "Abfrage-Listen" befinden, erfüllen dieses Kriterium. Daher können bei Bedarf diese Abfragen unter den Abfrage-Knoten mit dem Endpunkt kopiert werden.
Andere Abfragen, zu denen keine direkte Navigation besteht, z.B. mit Basistabelle SoftwarePackage lassen sich zwar in der Baumstruktur unterhalb eines Knotens mit Endpunkt einfügen, ein JSON-Export ist jedoch nicht möglich. Ob der Export funktioniert, kann in LOGINventory getestet weren, indem auf dem Knoten mit dem Endpunkt im Ribbon-Menü Schnell-Export die Option Json Export gewählt wird und der Export ohne Fehlermeldung durchläuft.

Übersicht der aktivierten Endpunkte

Alle aktivierten Endpunkte werden unterhalb des Knotens Web API Endpunkte aufgelistet. Von hier aus ist es auch möglich, die Endpunkte zu bearbeiten oder wieder zu deaktivieren, wenn kein Zugriff darüber mehr möglich sein soll.

Zugriff auf Web API Endpunkte

Mittels HTTP GET-Requests können von einem aktivierten Web API Endpunkt Daten abgerufen werden. Die Antwort im JSON-Format sieht z.B. wie folgt aus:

[
    {
        "DeviceInfo": {
            "ChassisType": "Rack Mount Chassis"
        },
        "LastInventory": {
            "Ip": "192.168.200.26",
            "Timestamp": "2022-06-02T10:56:28.763"
        },
        "Name": "DEKAN",
        "Software-Pakete": [
            {
                "Name": "HP Officejet Pro 8620 Basic Device Software",
                "Version": "32.3.198.49673"
            },
            {
                "Name": "HP Officejet Pro 8620 Help",
                "Version": "32.0.0"
            }
        ],
        "RAM-Module": [
            {
                "Name": "PROC 1 DIMM 2A",
                "SerialNumber": "61FF05E6",
                "Size": 16384,
                "Speed": "1333"
            },
            {
                "Name": "PROC 1 DIMM 1D",
                "SerialNumber": "CC176230",
                "Size": 2048,
                "Speed": "1333"
            }
        ]
    },
...

Test der Verbindung mittels Web Browser

Mittels eines Web-Browsers kann die entsprechende Endpunkt-URL auch aufgerufen werden, fall der verwendete Nutzer (bzw. der im Falle von Windows-Authentifizierung eingeloggte Nutzer) dazu authorisiert ist.

Authentifizierung

Achtung

Nach Veröffentlichen des Web Viewers sind standardmäßig nur "ASP.NET-Identitätswechsel" und "Windows-Authentifizierung" aktiviert. Wenn der verwendete Client keine Windows-Authentifizierung unterstützt, muss ggf. die "Standardauthentifizierung" in den IIS-Einstellungen (Ausführen von inetmgr) noch für die LOGINventory-Seite aktiviert werden.

Mittels Standardauthentifizierung (Basic Authentication) - also Benutzername und Passwort - (Achtung: nur wenn vorher aktiviert!) oder integrierter Windows-Authentifizierung kann der Zugriff auf die Web API autorisiert werden. Der verwendete User muss auf der Abfrage in LOGINventory selbst berechtigt sein (= die Abfrage muss für den Nutzer freigegeben sein), damit die Daten abgerufen werden können.

Info

Falls keine Rollen in LOGINventory vergeben wurden, kann jeder Nutzer auf alle Daten in LOGINventory zugreifen und somit auch Daten über einen Web API Endpunkt abrufen.

Ein Nutzer, der nicht für einen Zugriff auf die entsprechende Abfrage berechtigt ist, kann keine Daten über den Endpunkt abrufen und erhält eine Fehlermeldung.

Um die Verbindung auch ohne Benutzername und Passwort zu erlauben, kann in den IIS-Einstellungen (Ausführen von inetmgr) die Anonyme Authentifizierung aktiviert werden.

Anwendungsszenarien

Massen-Export in andere Systeme

Um in einem Drittsystem (z.B. einer CMDB zur Modellierung von Abhängigkeiten zwischen den System) die Daten aus LOGINventory zu nutzen, stehen verschiedene Export-Mechanismen zur Verfügung. Gegenüber dem csv-Export bietet der Export via Web API Endpunkt die Möglichkeit auch mehrere 1:n-Beziehungen in einem Datensatz zu exportieren, sodass also zu einem Gerät z.B. auch die Daten zu allen installierten Software-Pakten, angeschlossenen Monitoren und Partitionsbelegungen abgefragt werden können. Weiterhin ist somit nicht nur ein Zeitplan-gesteuerter Push der Daten, sondern ein Pull der Daten möglich. Um einen solchen Export vorzubereiten kann z.B. wie folgt vorgegangen werden:

  1. In LOGINventory wird eine neue Abfrage-Struktur definiert, die genau die Spalten enthält, die ins Drittsystem exportiert werden sollen. Wenn mehrere 1:n-Beziehungen zu einem Gerät exportiert werden sollen, werden entsprechende Abfragen unterhalb der ersten Abfrage erstellt (siehe Definition der Datenstruktur).
  2. Auf der neuen Abfrage wird über die Knoten-Eigenschaften ein neuer Web API Endpunkt eingerichtet.
  3. Das Drittsystem importiert die Daten regelmäßig mittels HTTP GET Request und aktualisiert so bei Bedarf den internen Datenbestand.

Live-Anbindung einzelner Datensätze

Um in einem Drittsystem (z.B. einem Helpdesk), das ebenfalls wie LOGINventory, Daten zu Computern anzeigt, weitere Informationen aus der Inventarisierung abzurufen eignet sich die Anbindung mittels HTTP Requests. Dazu kann z.b. wie folgt vorgegangen werden:

  1. In LOGINventory wird eine neue Abfrage definiert, die genau die Spalten enthält, die im Drittsystem angezeigt werden sollen, z.B. Name des Geräts (Device.Name), Betriebssystem (OperatingSystem.Name), IP-Adresse (LastInventory.IP), Standort (Eigene Eigenschaft Custom.Standort) und Datum des letzten Boots (OperatingSystem.LastBoot). Eine Filterung in der Abfrage selbst ist nicht nötig.
  2. Auf dieser Abfrage wird über die Knoten-Eigenschaften ein neuer Web API Endpunkt eingerichtet.
  3. Im Helpdesk ist bereits der Name des betroffenen Geräts bekannt; die anderen Werte sollen dynamisch "live" aus LOGINventory abgefragt werden. Es sollen also nicht die Ergebnisse aller Geräte abgefragt werden, sondern nur jeweils die eines bestimmten Geräts. Dazu kann über den Filter Pattern Generator eine URL generiert werden, die exemplarisch auf ein bestimmtest Gerät filter (z.B. Device.Name = PC123). Die entstandene URL kann vom Drittsystem verwendet werden, um die Daten des Geräts "PC123" abzurufen.
  4. Um die Daten eines anderen Geräts abzurufen muss in der URL der Text "PC123" durch den Namen des jeweiligen Geräts ersetzt werden.

Direkte Anbindung an andere Systeme

In Ihrem Unternehmen wird eine Software eingesetzt, die auf ähnliche Weise wir hier beschrieben angebunden werden soll? Kontaktieren Sie gerne die Hersteller der Software und stellen den Kontakt zu uns her. Wir sind gerne bereit, bei der Anbindung unterstützend zur Seite zu stehen.

Zurück zum Seitenanfang