Webservice einrichten

GenericInterface REST-Webservice in Znuny konfigurieren — Voraussetzung für alle SDK-Aufrufe.

Webservice einrichten — Znuny

Das Python SDK kann ohne GenericInterface REST-Webservice nicht mit Znuny kommunizieren.
pip install znuny installiert nur die Client-Bibliothek. Jeder ZnunyClient-Aufruf nutzt URLs wie:

https://ihr-znuny-server/Webservice/{webservice_name}/{operation_path}

Ohne Webservice erhalten Sie HTTP-404, Authentifizierungsfehler oder GenericInterface-Fehler — keine Import-Fehler in Python.

Was Sie vor dem Python-Code brauchen

AnforderungWarum
REST-WebserviceStellt Ticket Create/Get/Search/Update über HTTP bereit
Webservice-NameMuss ClientConfig.webservice_name entsprechen
Operations-PfadeMüssen den Werten in operation_url_map entsprechen
Agent-LoginBenutzer + Passwort für BasicAuth mit Webservice-Berechtigung

Empfohlen: znuny-cli setup-system

Auf dem Znuny-Anwendungsserver ausführen (oder auf einem Host mit Zugriff auf otrs.Console.pl).

1. Paket installieren

pip install znuny

2. Assistent starten

znuny-cli setup-system

Erkennt Znuny unter /opt/znuny/bin/otrs.Console.pl oder in Docker-Containern (znuny-web-1).

3. API-Benutzer anlegen (empfohlen)

EingabeStandardHinweis
Loginpython-client-userFür BasicAuth(user_login=...)
PasswortzufälligMuss Znuny-Passwortregeln erfüllen
Gruppenrechterw auf usersQueue-Zugriff für Ticket-Operationen

Passwort sicher speichern — nicht in Git committen.

4. Webservice konfigurieren

EingabeStandardHinweis
Webservice-NamePythonClientWebServiceExakt in ClientConfig.webservice_name
OperationenCREATE, GET, SEARCH, UPDATEAlle vier für volle SDK-Nutzung

Import über:

otrs.Console.pl Admin::WebService::Add --name <name> --source-path <datei.yml>

5. Standard-Operations-Pfade

SDK-EnumURL-PfadHTTP
TicketOperation.CREATEticket-createPOST
TicketOperation.GETticket-getGET
TicketOperation.SEARCHticket-searchPOST
TicketOperation.UPDATEticket-updatePUT

6. SDK verbinden

from znuny import ZnunyClient, BasicAuth, ClientConfig, TicketOperation

client = ZnunyClient(
    ClientConfig(
        base_url="https://ihr-znuny-server",
        webservice_name="PythonClientWebService",
        operation_url_map={
            TicketOperation.CREATE: "ticket-create",
            TicketOperation.GET: "ticket-get",
            TicketOperation.SEARCH: "ticket-search",
            TicketOperation.UPDATE: "ticket-update",
        },
    )
)
client.login(BasicAuth(user_login="python-client-user", password="IHR_PASSWORT"))

Manuelle Einrichtung in der Znuny-Admin-Oberfläche

Schritt 1 — Web Services öffnen

  1. Als Administrator in Znuny anmelden.
  2. Admin → Web ServicesWeb Service hinzufügen.

Schritt 2 — Provider konfigurieren

  1. Name = Wert für ClientConfig.webservice_name.
  2. Typ = Provider.
  3. Transport = HTTP::REST.

Schritt 3 — Provider-Operationen

Operations-NameBackend-TypRouteMethode
ticket-createTicket::TicketCreate/ticket-createPOST
ticket-getTicket::TicketGet/ticket-getGET
ticket-searchTicket::TicketSearch/ticket-searchPOST
ticket-updateTicket::TicketUpdate/ticket-updatePUT

Include ticket data für jede Operation aktivieren.

Schritt 4 — Berechtigungen

Der Agent-Login für BasicAuth braucht Queue-Zugriff und Webservice-Berechtigung.

Schritt 5 — Testen

curl -X GET "https://ihr-znuny-server/Webservice/PythonClientWebService/ticket-get?UserLogin=python-client-user&Password=IHR_PASSWORT&TicketID=1"

YAML-Import über Konsole

/opt/znuny/bin/otrs.Console.pl Admin::WebService::Add \
  --name PythonClientWebService \
  --source-path /pfad/zur/webservice.yml

Fehlerbehebung

SymptomUrsacheLösung
HTTP 404Falscher Name oder PfadAdmin → Web Services prüfen
Auth-FehlerFalsches Passwort / keine RechteAgent und Gruppen prüfen
Create schlägt fehlFalsche QueueQueue-Name und Berechtigungen prüfen
CLI findet Znuny nichtFalscher HostAuf Znuny-Server oder im Container ausführen

Weiter

Getting started und Mit Tickets arbeiten.