Przejdź do głównej zawartości

Symulowanie API HTTP

Kliknięcie prawym przyciskiem na folderze ▸ Dodaj ▸ Serwer HTTP.

Serwer konfiguruje się za pomocą tych samych pól co żądanie — i w tym tkwi cała zaleta: metoda oraz ścieżka definiują nasłuchiwaną trasę, natomiast status, nagłówki i treść definiują wysyłaną odpowiedź.

PoleRola
MetodaMetoda trasy
Adreslocalhost:<port><path> — host jest ustalony na stałe
Status symulacjiZwracany kod, domyślnie 200
NagłówkiNagłówki odpowiedzi
TreśćTreść odpowiedzi

Element Serwer HTTP: adres URL zredukowany do localhost + portu + ścieżki, obsługiwana metoda oraz nagłówki i treść symulowanej odpowiedzi

Trasa to para metoda + ścieżka. Dopasowanie odbywa się na podstawie dokładnej ścieżki, a ciąg zapytania jest ignorowany. Każde wywołanie docierające na port bez odpowiadającej mu trasy otrzymuje 404.

Dwie trasy kolidują ze sobą tylko wtedy, gdy mają tę samą metodę, tę samą ścieżkę oraz ten sam port. Można zatem utworzyć po jednym żądaniu serwerowym na trasę i uruchomić je wszystkie.

GET localhost:8080/clients → 200, lista klientów
GET localhost:8080/clients/42 → 200, jeden klient
POST localhost:8080/clients → 201, nagłówek Location
GET localhost:8080/clients/999 → 404 (brak trasy: odpowiedź domyślna)

Nagłówki i treść są rozwiązywane przy każdym przychodzącym wywołaniu. Treść zawierająca {{maintenant}} albo {{compteur}} zmienia się więc z wywołania na wywołanie, jeśli zmienia się wartość zmiennej.

Wskazówka: pozwala to sterować zachowaniem serwera w czasie jego pracy — wystarczy zmienić wartość zmiennej środowiskowej, a kolejne wywołanie otrzyma inną odpowiedź, bez ponownego uruchamiania.

Serwer symulacji HTTP oraz serwer WebSocket lub Socket.IO mogą nasłuchiwać na tym samym porcie: Restorm kieruje zwykłe żądania do tras HTTP, a żądania przełączenia protokołu do serwera czasu rzeczywistego.

Akcja Serwer HTTP hostuje trasę na czas trwania scenariusza i emituje zdarzenie served — zawierające { request, response }przy każdym odebranym wywołaniu. To właśnie w ten sposób testuje się webhook:

Serwer HTTP ──connected──► Żądanie HTTP „wywołaj webhook”
└────────served──────► Assert na request.body
potem ──► Zamknięcie serwera HTTP

Zob. Serwery hostowane.