Das ist eine für den Ausdruck optimierte Ansicht des gesamten Kapitels inkl. Unterseiten. Druckvorgang starten.

Zur Standardansicht zurückkehren.

Beispiel Python

Beispielimplementierung einer Python-Anwendung zur Nutzung der omniac Business API

Einführung und Projekteinrichtung

Python ist eine vielseitige, weit verbreitete Programmiersprache, die für ihre Einfachheit und umfangreichen Bibliotheken geschätzt wird und sich ideal für Webentwicklung, Datenanalyse und Automatisierung eignet. Um projektspezifische Abhängigkeiten zu verwalten und Konflikte zu vermeiden, empfiehlt es sich, eine virtuelle Umgebung zu verwenden. Sie können eine solche Umgebung in Ihrem Projektverzeichnis erstellen, indem Sie den Terminalbefehl python -m venv .venv ausführen, wobei .venv der Name Ihres Umgebungsordners ist. Nach der Erstellung müssen Sie diese aktivieren. Unter Windows verwenden Sie „.venv\Scripts\activate“ und unter macOS oder Linux „source .venv/bin/activate“. Nach der Aktivierung ändert sich Ihre Eingabeaufforderung und zeigt den Namen der Umgebung an. Alle Pakete, die Sie mit „pip“ installieren, werden für dieses bestimmte Projekt isoliert. Wenn Sie fertig sind, geben Sie einfach „deactivate“ ein, um zu Ihrem globalen Python-Kontext zurückzukehren. Dieser Prozess sorgt dafür, dass Ihre Projekte übersichtlich und reproduzierbar bleiben.

Empfohlene Entwicklungsumgebung

VSCodium, die Open-Source-Version von VS Code, ist eine ausgezeichnete Wahl für die Python-Entwicklung. Nach der Installation müssen Sie zunächst die offizielle Python-Erweiterung aus dem Marktplatz hinzufügen, um leistungsstarke Funktionen wie IntelliSense (Code-Vervollständigung), Linting (Fehlerprüfung) und Debugging freizuschalten. Öffnen Sie Ihren Projektordner in Codium (Datei > Ordner öffnen...). Der Editor erkennt Ihre virtuelle Umgebung oft automatisch, aber Sie können sie auch manuell auswählen, indem Sie die Befehlspalette (Strg+Umschalt+P) öffnen, nach „Python: Interpreter auswählen” suchen und die Python-Ausführungsdatei in Ihrem myenv-Ordner auswählen. Dadurch wird Codium korrekt für die Verwendung der isolierten Pakete Ihres Projekts konfiguriert. Anschließend können Sie das integrierte Terminal (Strg+) verwenden, um Ihre Skripte auszuführen, neue Pakete mit pip zu installieren und die Versionskontrolle mit Git zu verwalten, ohne den Editor verlassen zu müssen. Mit der Möglichkeit, Breakpoints zu setzen und Ihren Code mithilfe des Fensters „Ausführen und Debuggen“ schrittweise durchzugehen, bietet Codium eine umfassende und optimierte Umgebung für die Erstellung und das Testen Ihres Python-Tools von Anfang bis Ende.

Vorraussetzungen

Wir empfehlen dringend die Verwendung einer Unix-basierten Entwicklungsumgebung. Dies ist nicht nur mit Linux oder macOS möglich, sondern auch durch die Installation des Linux-Subsystems für Windows. Wenn Sie ein reines Windows-System verwenden, müssen Sie möglicherweise bestimmte Schritte anpassen.

Venv erstellen

Wir werden ein venv verwenden. Dazu führen wir einfach die folgenden Befehle aus.

python3 -m venv .venv
source .venv/bin/activate

Generieren des API-Clients

Wie in unserer Dokumentation empfohlen, verwenden wir den openapi-generator, um den erforderlichen Code für die Interaktion mit der API zu generieren. Dies gewährleistet Sicherheit und sorgt dafür, dass kritische Fehler so schnell wie möglich behoben werden.

mkdir api
openapi-generator-cli generate -i openapi.yaml -g python -o /api
pip install ./api
cd ..
touch main.py

Mit Ihrer neu erstellten client.py Datei können Sie nun den generierten Code importieren und den Client konfigurieren. Sie benötigen dazu die URL sowie Ihren API-Schlüssel. Dieser Code muss vor jedem API-Aufruf ausgeführt werden.

import openapi_client as omniac

configuration = omniac.Configuration(
    host = "https://api.omniac.de"
)
configuration.api_key["ApiKeyAuth"] = "YOUR_API_KEY_GOES_HERE"

Tenant info abrufen

Jetzt können Sie eine API-Instanz der TenantApi initialisieren. Verwenden Sie die Funktion getTenant Ihres API-Clients, um Informationen über Ihren Tenant abzurufen.

import openapi_client as omniac

[...]
with omniac.ApiClient(configuration) as api_client:
    api_instance = omniac.TenantApi(api_client)
try:
    tenant = api_instance.get_tenant()
    print(tenant)
except Exception as e:
    print(f"Error: {e}")

Profile zum Tenant hinzufügen

Um die Überwachung von Attributen zu starten und Alerts zu erhalten, müssen Sie einen Benutzer für Ihren Tenant konfigurieren. Nachdem Sie das Profil erfolgreich erstellt haben, können Sie mit dem Hinzufügen von Attributen beginnen.

import openapi_client as omniac

[...]
with omniac.ApiClient(configuration) as api_client:
    api_instance = omniac.ProfileApi(api_client)
    newProfile = omniac.ProfileCreateRequest(
        name="test",
        user_language="de",
    )
try:
    profile = api_instance.create_profile(newProfile)

    print(profile.id)
    
    api_response = api_instance.replace_attributes(profile.id, [
        omniac.AttributeCreateRequest(
            type="email",
            value="test@example.com"
        )
    ])
    print(api_response)
except Exception as e:
    print(f"Error: {e}")

Mehrere Profile als Batch anlegen

Neben der Möglichkeit individuelle Profile anzulegen, bietet omniac Business auch an bis zu 500 Profile gleichzeitig mit Attributen anzulegen.

import openapi_client as omniac

[...]

with omniac.ApiClient(configuration) as api_client:
    api_instance = omniac.ProfileApi(api_client)
    profile_create_batch_request = [omniac.ProfileCreateBatchRequest(
        name="Test1",
            user_language="de",
            attributes=[
                omniac.AttributeCreateRequest(
                    type="email",
                    value="test@example.com"
                )
            ]
    )]
    
try:
    profiles = api_instance.create_profiles(profile_create_batch_request)
    print(profiles)
except Exception as e:
    print(f"Error: {e}")

Alerts abrufen

Nach einigen Minuten gehen Alerts ein, falls Lecks gefunden wurden. Sie können diese mit der Funktion „get_profile“ und Ihrer ProfileID abrufen. Mit den beiden Parametern nach der ProfileID können Sie neben den Alerts auch die Benutzerattribute (gehasht und verschlüsselt) abrufen.

import openapi_client as omniac

[...]
with omniac.ApiClient(configuration) as api_client:
    api_instance = omniac.ProfileApi(api_client)
    try:
        profile = api_instance.get_profile("profileID", True, True)
        print(profile)
    except Exception as e:
        print(f"Error: {e}")

Push-Benachrichtigungs-Endpunkt bereitstellen

Um Sie noch schneller zu benachrichtigen, bieten wir eine Push-API für neue Benachrichtigungen an. Sobald etwas gefunden wird, veröffentlichen wir die Benachrichtigung in Ihrem System. Dies geschieht über einen HTTP-Aufruf. Die Zustellung wird auf unserer Seite als abgeschlossen markiert, sobald Ihre API einen 2xx-HTTP-Statuscode zurückgibt.

Um diese Funktion nutzen zu können, müssen Sie sich mit uns in Verbindung setzen, damit wir die Funktion für Ihren Tenant aktivieren können.