3.3 KiB
OpenAPI Workshop
FoodExpress - API Dokumentation erstellen
Workshop-Material
Das Szenario: FoodExpress
Willkommen bei FoodExpress!
Ihr wurdet als Entwicklerteam beauftragt, die API-Dokumentation für FoodExpress zu erstellen - eine innovative Plattform zur Online-Essensbestellung. Die Plattform verbindet hungrige Kunden mit lokalen Restaurants und ermöglicht eine nahtlose Bestellabwicklung.
Die Geschäftsanforderungen
FoodExpress möchte seinen Partnern und Entwicklern eine standardisierte, gut dokumentierte API zur Verfügung stellen. Eure Aufgabe ist es, eine vollständige OpenAPI-Spezifikation zu erstellen, die alle notwendigen Endpunkte beschreibt.
Die Kernfunktionen der Plattform
| Restaurants | Bestellungen | Kunden | |
|---|---|---|---|
| Beschreibung | Verwaltung und Anzeige von Restaurants und deren Speisekarten | Erstellen, Abrufen und Verwalten von Bestellungen | Kundenverwaltung und Profilinformationen |
| Endpunkte | GET /restaurantsGET /restaurants/{id}/menu GET /restaurants/{id}/orders |
POST /ordersGET /orders/{orderId}PATCH /orders/{orderId}/status |
POST /customersGET /customers/{id}GET /customers/mePATCH /customers/{id}DELETE /customers/{id} |
Eure Mission
Im Laufe dieses Workshops werdet ihr schrittweise eine vollständige OpenAPI 3.0 Spezifikation für FoodExpress erstellen. Dabei lernt ihr alle wichtigen Konzepte und Best Practices kennen, die ihr für professionelle API-Dokumentation benötigt.
API Endpunkte - Vollständige Übersicht
Diese Endpunkte sollt ihr im Verlauf des Workshops in eurer OpenAPI-Spezifikation definieren:
Restaurant-Endpunkte
GET /restaurants
Liste aller verfügbaren Restaurants abrufen
- Query-Parameter: Pagination (limit, offset) für große Ergebnismengen
- Header-Parameter: AcceptLanguage
GET /restaurants/{id}/menu
Speisekarte eines bestimmten Restaurants abrufen
- Path-Parameter: Restaurant-ID als Pflichtparameter
- Header-Parameter: AcceptLanguage
GET /restaurants/{id}/orders
Liste an Bestellungen pro Restaurant
- Path-Parameter: Restaurant-ID als Pflichtparameter
- Header-Parameter: AcceptLanguage
Bestell-Endpunkte
POST /orders
Neue Bestellung aufgeben
- Request Body: Bestelldetails inkl. Kunde, Restaurant, Artikel
- Header-Parameter: IdempotencyKey
GET /orders/{orderId}
Details einer spezifischen Bestellung abrufen
- Path-Parameter: Bestellnummer als Pflichtparameter
PATCH /orders/{orderId}/status
Bestellstatus aktualisieren (z.B. 'in Zubereitung', 'unterwegs')
- Request Body: Neuer Status-Wert
Kunden-Endpunkte
POST /customers
Neuen Kunden registrieren
- Request Body: Kundendaten (Name, E-Mail, Adresse, etc.)
- Header-Parameter: IdempotencyKey
GET /customers/{id}
Kundenprofil abrufen
- Path-Parameter: Kunden-ID als Pflichtparameter
GET /customers/me
Eigenes Kundenprofil des authentifizierten Benutzers abrufen
PATCH /customers/{id}
Kundendaten aktualisieren
- Request Body: Zu aktualisierende Felder
DELETE /customers/{id}
Kundenkonto löschen
- Hinweis: Irreversible Aktion - Bestätigung erforderlich