Zum Inhalt springen

Eine HTTP-API simulieren

Rechtsklick auf einen Ordner ▸ Hinzufügen ▸ HTTP-Server.

Ein Server wird mit denselben Feldern wie eine Anfrage konfiguriert — und genau darin liegt der Reiz: Methode und Pfad definieren die abgehörte Route, Status, Header und Body definieren die ausgelieferte Antwort.

FeldRolle
MethodeDie Methode der Route
Adresselocalhost:<port><path> — der Host ist fest vorgegeben
Simulierter StatusDer zurückgegebene Code, standardmäßig 200
HeaderDie Header der Antwort
BodyDer Body der Antwort

Ein HTTP-Server-Element: die auf localhost + Port + Pfad verkürzte URL, die ausgelieferte Methode, die Header und der Body der simulierten Antwort

Eine Route ist ein Paar aus Methode und Pfad. Der Abgleich erfolgt über den exakten Pfad, wobei der Query-String ignoriert wird. Jeder Aufruf, der am Port eingeht, ohne einer Route zu entsprechen, erhält einen 404.

Zwei Routen kollidieren nur, wenn sie dieselbe Methode, denselben Pfad und denselben Port teilen. Sie können also eine Server-Anfrage pro Route erstellen und alle gleichzeitig starten.

GET localhost:8080/clients → 200, Liste von Kunden
GET localhost:8080/clients/42 → 200, ein Kunde
POST localhost:8080/clients → 201, Header Location
GET localhost:8080/clients/999 → 404 (keine Route: Standardantwort)

Header und Body werden bei jedem eingehenden Aufruf neu aufgelöst. Ein Body, der {{now}} oder {{counter}} enthält, ändert sich also von Aufruf zu Aufruf, wenn sich die Variable ändert.

Tipp: So lässt sich das Verhalten des Servers steuern, während er läuft — ändern Sie den Wert einer Umgebungsvariable, und der nächste Aufruf erhält eine andere Antwort, ohne Neustart.

Ein simulierter HTTP-Server und ein WebSocket- oder Socket.IO-Server können auf demselben Port lauschen: Restorm leitet gewöhnliche Anfragen an die HTTP-Routen weiter und Upgrade-Anfragen an den Echtzeit-Server.

Die Aktion HTTP-Server stellt die Route für die Dauer des Szenarios bereit und löst ein served-Ereignis aus — mit { request, response }pro eingegangenem Aufruf. Das ist der Weg, um einen Webhook zu testen:

HTTP-Server ──connected──► HTTP-Anfrage „Webhook auslösen“
└───────served──────► Assert auf request.body
dann ──► HTTP-Server schließen

Siehe Gehostete Server.