Webservice einrichten
GenericInterface REST-Webservice in OTOBO konfigurieren — Voraussetzung für alle SDK-Aufrufe.
Webservice einrichten — OTOBO
Das Python SDK kann ohne GenericInterface REST-Webservice nicht mit OTOBO kommunizieren.
pip install otobo installiert nur die Client-Bibliothek. Jeder OTOBOClient-Aufruf nutzt URLs wie:
https://ihr-otobo-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: otobo-cli setup-system
Auf dem OTOBO-Host oder im OTOBO-Docker-Container ausführen.
1. Paket installieren
pip install otobo
2. Assistent starten
otobo-cli setup-system
Erkennt OTOBO unter /opt/otobo/bin/otobo.Console.pl oder in Docker (otobo-web-1).
3. API-Benutzer anlegen (empfohlen)
| Eingabe | Standard | Hinweis |
|---|---|---|
| Login | python-client-user | Für BasicAuth(user_login=...) |
| Passwort | zufällig | Muss OTOBO-Passwortregeln erfüllen |
| Gruppenrechte | rw auf users | Queue-Zugriff |
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:
otobo.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 otobo import OTOBOClient, BasicAuth, ClientConfig, TicketOperation
client = OTOBOClient(
ClientConfig(
base_url="https://ihr-otobo-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 OTOBO-Admin-Oberfläche
Schritt 1 — Web Services öffnen
- Als Administrator in OTOBO 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-otobo-server/Webservice/PythonClientWebService/ticket-get?UserLogin=python-client-user&Password=IHR_PASSWORT&TicketID=1"
YAML-Import über Konsole
/opt/otobo/bin/otobo.Console.pl Admin::WebService::Add \
--name PythonClientWebService \
--source-path /pfad/zur/webservice.yml
Im Docker-Container:
docker exec -it otobo-web-1 /opt/otobo/bin/otobo.Console.pl Admin::WebService::Add \
--name PythonClientWebService \
--source-path /opt/otobo/var/webservices/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 OTOBO nicht | Falscher Host | Auf OTOBO-Host oder im Container ausführen |
