5.1 KiB
API Dokumentation
Überblick
Die Veranstaltungen-API bietet Zugriff auf Events, Locations und deren Vorkommen (Termine). Alle Endpoints sind REST-konform und geben JSON zurück.
Base URL: http://localhost:8000/api
Events API
1. Alle Events auflisten
GET /events
Beschreibung: Listet alle veröffentlichten Events mit optionalen Filtern auf.
Query Parameter:
from(optional): Startdatum im Format YYYY-MM-DDto(optional): Enddatum im Format YYYY-MM-DDcategory(optional): Filter nach Kategorielocation(optional): Filter nach Ort oder Stadtlimit(optional): Anzahl pro Seite (1-100, Standard: 20)
Beispiel:
curl "http://localhost:8000/api/events?category=Kultur&location=Dresden&limit=10"
Response (200 OK):
{
"success": true,
"data": [
{
"id": 1,
"title": "Jazz-Konzert im Park",
"description": "...",
"category": "Musik",
"location_id": 1,
"status": "published",
"location": {
"id": 1,
"name": "Tiergarten Berlin",
"address": {
"street": "Straße des 17. Juni",
"house_number": "100",
"postal_code": "10785",
"city": "Berlin",
"state": "Berlin",
"country": "Germany"
},
"contact": {
"phone": "+49 30 39403501",
"email": "info@tiergarten.de",
"website": "https://www.tiergarten.de"
}
},
"occurrences": [
{
"id": 1,
"start_datetime": "2026-04-18T10:00:00Z",
"end_datetime": "2026-04-18T18:00:00Z",
"status": "scheduled"
}
]
}
],
"pagination": {
"total": 42,
"per_page": 20,
"current_page": 1,
"last_page": 3
}
}
2. Einzelnes Event anzeigen
GET /events/{id}
Beschreibung: Zeigt ein einzelnes veröffentlichtes Event mit allen seinen Terminen.
Path Parameter:
id(erforderlich): Event ID
Beispiel:
curl "http://localhost:8000/api/events/1"
Response (200 OK):
{
"success": true,
"data": {
"id": 1,
"title": "Jazz-Konzert im Park",
"description": "...",
"category": "Musik",
"location": { ... },
"occurrences": [ ... ]
}
}
Response (404 Not Found): Event nicht veröffentlicht oder existiert nicht.
Locations API
3. Verfügbare Veranstaltungsorte
GET /events/locations/list
Beschreibung: Listet alle verfügbaren Veranstaltungsorte mit vollständigen Adressinformationen auf.
Beispiel:
curl "http://localhost:8000/api/events/locations/list"
Response (200 OK):
{
"success": true,
"data": [
{
"id": 1,
"name": "Tiergarten Berlin",
"address": {
"street": "Straße des 17. Juni",
"house_number": "100",
"postal_code": "10785",
"city": "Berlin",
"state": "Berlin",
"country": "Germany",
"full_address": "Straße des 17. Juni 100, 10785 Berlin, Germany",
"short_address": "10785 Berlin"
},
"contact": {
"phone": "+49 30 39403501",
"email": "info@tiergarten.de",
"website": "https://www.tiergarten.de"
},
"event_count": 1
}
]
}
Utilities API
4. Verfügbare Kategorien
GET /events/categories/list
Beschreibung: Listet alle verfügbaren Event-Kategorien auf.
Beispiel:
curl "http://localhost:8000/api/events/categories/list"
Response (200 OK):
{
"success": true,
"data": [
"Musik",
"Theater",
"Sport",
"Film",
"Kulinarik",
"Kunst",
"Literatur",
"Wellness",
"Festival",
"Technologie"
]
}
Fehlerbehandlung
Fehler-Response Format
{
"success": false,
"message": "Beschreibung des Fehlers",
"errors": {
"field": ["Validierungsfehler"]
}
}
HTTP Status Codes
- 200 OK: Erfolgreich
- 404 Not Found: Ressource nicht gefunden
- 422 Unprocessable Entity: Validierungsfehler
- 500 Internal Server Error: Serverfehler
Filterbeispiele
Events nach Kategorie filtern
curl "http://localhost:8000/api/events?category=Musik"
Events nach Ort filtern
curl "http://localhost:8000/api/events?location=Berlin"
Events in Zeitraum filtern
curl "http://localhost:8000/api/events?from=2026-04-15&to=2026-05-31"
Kombinierte Filter
curl "http://localhost:8000/api/events?category=Kultur&location=Dresden&from=2026-04-15&limit=5"
Swagger UI
Eine interaktive API-Dokumentation ist verfügbar unter: http://localhost:8000/api/docs
Hier kannst du:
- Alle Endpoints visualisieren
- Parameter testen
- Response-Strukturen sehen
- API-Calls direkt ausführen
Rate Limiting
Aktuell gibt es keine Rate-Limits. Dies kann in Zukunft implementiert werden.
Versionierung
Aktuelle API-Version: 1.0.0
Zukünftige Breaking Changes werden durch eine neue Major-Version gekennzeichnet (z.B. /api/v2/...).
Support
Bei Fragen oder Problemen: support@veranstaltungen.de