Workshop: Goods Century
Goods Century ist ein junger Online Marketplace und benötigt für die Entwicklung ihrer Platform. Das ER-Diagram für die Datenbank wurde bereits designed.
User-Stories für das API-Design
-
Benutzerregistrierung und Authentifizierung
- Als neuer Benutzer möchte ich mich registrieren und einloggen, damit ich auf meine Bestellungen und Wunschlisten zugreifen kann.
-
Produkte durchsuchen und filtern
- Als Benutzer möchte ich die Produkte durchsuchen, nach Kategorien filtern und nach Preis sortieren können, um das passende Produkt zu finden.
-
Produktdetails und Bewertungen
- Als Benutzer möchte ich die Details eines Produkts sowie die Bewertungen anderer Kunden einsehen, um eine Kaufentscheidung treffen zu können.
-
Warenkorb verwalten
- Als Benutzer möchte ich Produkte zu meinem Warenkorb hinzufügen und die Menge anpassen können, bevor ich eine Bestellung abschließe.
-
Bestellungen aufgeben und verwalten
- Als Benutzer möchte ich eine Bestellung aufgeben und den Status meiner Bestellung verfolgen können, um sicherzustellen, dass sie korrekt verarbeitet wird.
-
Lieferadresse hinzufügen und verwalten
- Als Benutzer möchte ich mehrere Lieferadressen speichern und bei einer Bestellung auswählen können, damit die Lieferung reibungslos funktioniert.
-
Bewertungen abgeben
- Als Benutzer möchte ich eine Bewertung für ein gekauftes Produkt abgeben, um meine Meinung mit anderen Nutzern zu teilen.
-
Wunschliste erstellen und verwalten
- Als Benutzer möchte ich Produkte zu einer Wunschliste hinzufügen und später darauf zugreifen können, um eventuell später zu kaufen.
-
Zahlungen durchführen
- Als Benutzer möchte ich bei einer Bestellung eine Zahlungsmethode auswählen und die Zahlung abschließen können.
Workshop-Aufgaben: API-Design mit dem Swagger Editor und Import in Postman
Für diesen Workshop verwenden wir den Swagger Editor unter https://editor-next.swagger.io/. Hier können wir unsere API-Definition im OpenAPI-Format entwerfen und später in Postman importieren, um die Endpunkte zu testen.
Aufgaben für den API-Design-Workshop
-
API-Endpunkte entwerfen
- Basierend auf den User-Stories, die wir besprochen haben, sollst du die erforderlichen Endpunkte und deren HTTP-Methoden (GET, POST, PUT, DELETE) in Swagger definieren.
- Beispiele:
POST /users/register
für die Registrierung eines Benutzers.GET /products?category=electronics&sort=price_asc
für das Filtern und Sortieren von Produkten.
- Überlege dir auch sinnvolle Pfade für verschachtelte Ressourcen, wie z. B.
/users/{userId}/orders
, um die Bestellungen eines bestimmten Benutzers abzurufen.
-
Ressourcen-URLs strukturieren
- Überlege, wie du die URL-Struktur und Hierarchie für die verschiedenen Ressourcen aufbaust. Die Struktur sollte RESTful und logisch sein, sodass die Endpunkte intuitiv und leicht zu verstehen sind.
- Lege im Swagger Editor für jede Ressource ein passendes Tag fest, z.B.
Products
,Orders
,Users
, um die Dokumentation übersichtlicher zu machen.
-
Datenstrukturen und Beispiel-Responses definieren
- Definiere für jeden Endpunkt die Request-Bodies und Responses als Schemas.
- Beispiel: Für den Endpunkt
GET /products/{productId}
solltest du eine Antwortstruktur erstellen, die die Details des Produkts sowie eine Liste der Bewertungen enthält. - Benutze die Example-Funktion im Swagger Editor, um Beispieldaten anzugeben. Das hilft später beim Import in Postman, da du dann bereits realistische Mock-Daten hast.
-
Statuscodes und Fehler definieren
- Bestimme die Statuscodes, die für jeden Endpunkt zurückgegeben werden. Definiere auch Fehlerantworten, um eine einheitliche und klare Fehlerbehandlung sicherzustellen.
- Beispiele:
200 OK
für erfolgreiche Abfragen.201 Created
für das Erstellen neuer Ressourcen.400 Bad Request
für fehlerhafte Eingaben.404 Not Found
für nicht existierende Ressourcen.
- Erstelle bei Bedarf spezielle Fehlerantworten und beschreibe die möglichen Fehler in den Responses-Feldern.
Import der API-Definition in Postman
-
Export aus Swagger Editor: Wenn du alle Endpunkte definiert hast, exportiere deine API-Definition als JSON oder YAML. Gehe dazu im Swagger Editor zu File > Download und speichere die Datei lokal.
-
Import in Postman:
- Öffne Postman und wähle Import.
- Lade deine exportierte Swagger-Datei hoch. Postman wird automatisch die API-Endpunkte importieren, die du erstellt hast, und eine Collection daraus erstellen.
- Nun kannst du die Endpunkte direkt in Postman testen und die Anfragen anpassen, um realistische Tests mit verschiedenen Parametern und Daten vorzunehmen.
Teste deine API in Postman
-
API-Definition in Postman importieren
- Wenn du die API im Swagger Editor entworfen und als OpenAPI-Datei (JSON oder YAML) exportiert hast, importiere sie in Postman.
- Gehe dazu in Postman auf Import, lade die Datei hoch, und Postman erstellt automatisch eine Collection für die API.
-
Mock-Server in Postman erstellen
- Gehe zur Collection der importierten API in Postman.
- Klicke auf die drei Punkte neben dem Collection-Namen und wähle Mock Collection.
- Gib dem Mock-Server einen Namen und wähle eine Umgebung (optional) oder erstelle eine neue.
- Aktiviere Save the mock server URL as an environment variable, sodass du den Mock-Server später einfach in deinen Requests verwenden kannst.
- Klicke auf Create Mock Server. Postman erstellt eine URL, die als Basis-URL für alle API-Endpunkte dient.
-
Mock-Responses hinzufügen
- Für jeden Endpunkt kannst du nun definieren, welche Antwort zurückgegeben wird. Gehe dazu in Postman zu einem bestimmten Request in deiner Collection.
- Klicke auf den Examples-Tab (unterhalb des Request-Editors) und wähle Add Example.
- Erstelle hier eine Beispiel-Response für den Endpunkt. Du kannst die erwarteten Statuscodes, Header und einen JSON-Body einfügen.
- Speichere das Beispiel. Postman verwendet diese Response, wenn du diesen Endpunkt über den Mock-Server aufrufst.
-
Testen der Mock-API
- Nun kannst du deine API wie gewohnt testen, aber statt einer echten Backend-Response gibt der Mock-Server die vorbereiteten Antworten zurück.
- Rufe einen Endpunkt auf, indem du die Mock-Server-URL als Basis-URL verwendest, z.B.
https://mock-server-url.com/users
. - Postman gibt dir die Beispiel-Response zurück, die du für diesen Endpunkt definiert hast.
Vorteile des Mock-Servers
- Du kannst die API-Definition und alle Endpunkte testen, ohne ein tatsächliches Backend implementieren zu müssen.
- Der Mock-Server hilft dir, mögliche Fehler im Design frühzeitig zu identifizieren.
- Teammitglieder können die API nutzen, ohne dass sie vollständig implementiert ist.
Diese Methode erlaubt dir, das API-Design vollständig zu simulieren und in Postman zu testen. Sobald das Backend entwickelt ist, kannst du die Basis-URL einfach auf die tatsächliche Server-URL ändern und die echten Daten verwenden.