Swagger & OpenAPI
ELIZA bietet eine interaktive API-Dokumentation basierend auf OpenAPI 3.0.
Swagger-UI
Die Swagger-UI ermöglicht interaktives Erkunden und Testen der API.
Zugriff
https://[deine-domain]/api/schema/swagger-ui/
Für lokale Entwicklung:
http://localhost:8000/api/schema/swagger-ui/
Funktionen
- Durchsuchen: Alle Endpoints nach Modulen gruppiert
- Testen: Anfragen direkt im Browser ausführen
- Schema: Request- und Response-Formate einsehen
- Authentifizierung: Token für Tests eingeben
Authentifizierung in Swagger
- Klicke auf Authorize (Schloss-Symbol oben rechts)
- Gib dein Token ein:
Token dein_api_token_hier - Klicke Authorize
Nun sind alle Anfragen authentifiziert.
⚠️ Wichtig: Das Präfix Token (mit Leerzeichen) muss enthalten sein.
Endpoint testen
- Wähle einen Endpoint (z.B.
GET /api/organisation/mitarbeitende) - Klicke Try it out
- Fülle optionale Parameter aus
- Klicke Execute
- Sieh dir Response-Code und Body an
OpenAPI-Schema
Das maschinenlesbare Schema ist verfügbar unter:
https://[deine-domain]/api/schema/
Schema herunterladen
JSON-Format:
curl -H "Accept: application/json" \
https://example.myeliza.ch/api/schema/ \
-o openapi.json
YAML-Format:
curl -H "Accept: application/yaml" \
https://example.myeliza.ch/api/schema/ \
-o openapi.yaml
Mit Python:
import requests
import json
response = requests.get(
"https://example.myeliza.ch/api/schema/",
headers={"Accept": "application/json"}
)
# Schema speichern
with open("openapi.json", "w") as f:
json.dump(response.json(), f, indent=2)
# Schema-Info ausgeben
schema = response.json()
print(f"API: {schema['info']['title']}")
print(f"Version: {schema['info']['version']}")
print(f"Endpoints: {len(schema['paths'])}")
Client-Generierung
Mit dem OpenAPI-Schema kannst du API-Clients automatisch generieren.
OpenAPI Generator
# Installation
npm install @openapitools/openapi-generator-cli -g
# Python-Client generieren
openapi-generator-cli generate \
-i https://example.myeliza.ch/api/schema/ \
-g python \
-o ./eliza-client
# TypeScript-Client generieren
openapi-generator-cli generate \
-i https://example.myeliza.ch/api/schema/ \
-g typescript-axios \
-o ./eliza-ts-client
Verfügbare Generatoren
python- Python mit urllib3python-pydantic- Python mit Pydantic Modelstypescript-axios- TypeScript mit Axiostypescript-fetch- TypeScript mit Fetch APIcsharp- C# / .NETjava- Javago- Goruby- Ruby
Schema-Struktur
Das OpenAPI-Schema enthält:
openapi: 3.0.3
info:
title: ELIZA API
version: 1.0.0
description: Eliza API documentation
paths:
/api/organisation/mitarbeitende:
get:
operationId: organisation_mitarbeitende_list
tags:
- organisation
parameters:
- name: archived
in: query
schema:
type: boolean
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Mitarbeitende'
components:
schemas:
Mitarbeitende:
type: object
properties:
id:
type: integer
vorname:
type: string
nachname:
type: string
Postman Import
Du kannst das Schema in Postman importieren:
- Öffne Postman
- File → Import
- Wähle Link und gib ein:
https://example.myeliza.ch/api/schema/ - Klicke Import
Alle Endpoints werden als Collection importiert.
Insomnia Import
Für Insomnia:
- Application → Preferences → Data
- Import Data → From URL
- Gib die Schema-URL ein
Schema-Validierung
Prüfe, ob deine Anfragen dem Schema entsprechen:
from openapi_core import OpenAPI
# Schema laden
api = OpenAPI.from_url("https://example.myeliza.ch/api/schema/")
# Request validieren
from openapi_core.testing.mock import MockRequest
request = MockRequest(
"https://example.myeliza.ch",
"GET",
"/api/organisation/mitarbeitende"
)
result = api.unmarshal_request(request)
Tipps für die Swagger-UI
💡 Tipp 1: Nutze die Filter-Funktion oben, um Endpoints schnell zu finden.
💡 Tipp 2: Klappe Schema-Abschnitte auf, um alle Felder zu sehen.
💡 Tipp 3: Die Example Value zeigt typische Request/Response-Daten.
💡 Tipp 4: Kopiere Curl-Befehle aus der UI für Kommandozeilen-Tests.
Nächste Schritte
→ Best Practices - Sicherheit und Performance
Zusammenfassung
✅ Swagger-UI unter /api/schema/swagger-ui/
✅ OpenAPI-Schema unter /api/schema/
✅ Automatische Client-Generierung mit OpenAPI Generator
✅ Import in Postman, Insomnia und andere Tools
✅ Token-Format: Token <dein-token>