add food express endpoints markdown
parent
b50a13d9db
commit
f08624ef57
|
|
@ -0,0 +1,126 @@
|
||||||
|
# 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 /restaurants`<br>`GET /restaurants/{id}/menu` <br>`GET /restaurants/{id}/orders` | `POST /orders`<br>`GET /orders/{orderId}`<br>`PATCH /orders/{orderId}/status` | `POST /customers`<br>`GET /customers/{id}`<br>`GET /customers/me`<br>`PATCH /customers/{id}`<br>`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
|
||||||
Loading…
Reference in New Issue