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
| Anforderung | Warum |
|---|---|
| REST-Webservice | Stellt Ticket Create/Get/Search/Update über HTTP bereit |
| Webservice-Name | Muss ClientConfig.webservice_name entsprechen |
| Operations-Pfade | Müssen den Werten in operation_url_map entsprechen |
| Agent-Login | Benutzer + 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)
| Eingabe | Standard | Hinweis |
|---|---|---|
| Login | python-client-user | Für BasicAuth(user_login=...) |
| Passwort | zufällig | Muss Znuny-Passwortregeln erfüllen |
| Gruppenrechte | rw auf users | Queue-Zugriff für Ticket-Operationen |
Passwort sicher speichern — nicht in Git committen.
4. Webservice konfigurieren
| Eingabe | Standard | Hinweis |
|---|---|---|
| Webservice-Name | PythonClientWebService | Exakt in ClientConfig.webservice_name |
| Operationen | CREATE, GET, SEARCH, UPDATE | Alle 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-Enum | URL-Pfad | HTTP |
|---|---|---|
TicketOperation.CREATE | ticket-create | POST |
TicketOperation.GET | ticket-get | GET |
TicketOperation.SEARCH | ticket-search | POST |
TicketOperation.UPDATE | ticket-update | PUT |
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
- Als Administrator in Znuny anmelden.
- Admin → Web Services → Web Service hinzufügen.
Schritt 2 — Provider konfigurieren
- Name = Wert für
ClientConfig.webservice_name. - Typ = Provider.
- Transport = HTTP::REST.
Schritt 3 — Provider-Operationen
| Operations-Name | Backend-Typ | Route | Methode |
|---|---|---|---|
ticket-create | Ticket::TicketCreate | /ticket-create | POST |
ticket-get | Ticket::TicketGet | /ticket-get | GET |
ticket-search | Ticket::TicketSearch | /ticket-search | POST |
ticket-update | Ticket::TicketUpdate | /ticket-update | PUT |
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
| Symptom | Ursache | Lösung |
|---|---|---|
| HTTP 404 | Falscher Name oder Pfad | Admin → Web Services prüfen |
| Auth-Fehler | Falsches Passwort / keine Rechte | Agent und Gruppen prüfen |
| Create schlägt fehl | Falsche Queue | Queue-Name und Berechtigungen prüfen |
| CLI findet Znuny nicht | Falscher Host | Auf Znuny-Server oder im Container ausführen |
