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

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: 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)

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

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:

otobo.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 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

  1. Als Administrator in OTOBO 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-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

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 OTOBO nichtFalscher HostAuf OTOBO-Host oder im Container ausführen

Weiter

Einstieg und Mit Tickets arbeiten.