Przejdź do głównej zawartości

Tryb serwera

Restorm potrafi nie tylko wywołać serwer, lecz także go hostować. Definiuje się trasę oraz jej odpowiedź, uruchamia nasłuchiwanie, a następnie kieruje na nią klienta — zwykle kod własnej aplikacji — aby sprawdzić, w jaki sposób konsumuje on usługę.

Jest to potrzebne wtedy, gdy prawdziwa usługa jeszcze nie istnieje, gdy trudno zmusić ją do zwrócenia interesującej odpowiedzi (błąd 503, błąd SOAP, konkretny status gRPC), albo gdy przydaje się zamrożony zestaw danych do powtarzalnego testu.

Zasada jest prosta i właśnie to czyni ją wygodną: to, co skonfigurowano na serwerze, jest odpowiedzią, która zostaje wysłana. Wpisany status, nagłówki i treść to dokładnie to, co otrzymuje wywołujący.

Element Serwer HTTP w trakcie nasłuchiwania: przycisk nasłuchiwania zmieniony na czerwony (aktywny), stan „Nasłuchuje — obsłużono 3 żądania” oraz komunikat „Konfiguracja zablokowana podczas działania serwera”

SerwerStrona
HTTPSymulowanie API HTTP
GraphQLSymulowanie API GraphQL
gRPCSymulowanie usługi gRPC
SOAPSymulowanie usługi SOAP
WebSocket, Socket.IO, MQTTSymulowanie WebSocket, Socket.IO i MQTT
ODataSymulowanie usługi OData

Kliknięcie prawym przyciskiem na folderze ▸ Dodaj ▸, a następnie wybór odpowiedniego wpisu. Menu udostępnia osiem serwerów, z których każdy jest osobnym typem elementu:

Serwer HTTP · Serwer GraphQL · Serwer gRPC · Serwer SOAP · Serwer WebSocket · Serwer Socket.IO · Serwer MQTT · Serwer OData

Utworzony element nosi w drzewie plakietkę SRV. Dla serwera HTTP wartościami początkowymi są GET, localhost:8080/ oraz status 200.

W panelu przycisk wysyłania zostaje zastąpiony przełącznikiem Listen ↔ Stop. Panel odpowiedzi pokazuje stan na bieżąco: Not listening albo Listening — N request(s) served.

Host jest na stałe ustawiony na localhost: edytowalne są wyłącznie port i ścieżka. Serwer symulacji nie jest przeznaczony do udostępniania w sieci.

Serwer zatrzymuje się przyciskiem Stop, przez zamknięcie pliku albo przez zakończenie pracy aplikacji.

Restorm otwiera tylko jedno gniazdo na port i kieruje ruch zależnie od charakteru przychodzącego wywołania: zwykłe żądania do tras HTTP, żądania przełączenia protokołu do WebSocket lub Socket.IO.

W praktyce: serwer HTTP symulacji oraz serwer Socket.IO mogą nasłuchiwać razem na :8080. Port zostaje zwolniony dopiero po zatrzymaniu jego ostatniej trasy.

Wysyłane nagłówki i treść są rozwiązywane w momencie obsługi wywołania, a nie przy uruchomieniu: zmiana zmiennej środowiskowej w czasie, gdy serwer nasłuchuje, zmienia kolejną odpowiedź. Zob. Zmienne i środowiska.

Akcje Serwer … / Zamknięcie serwera … hostują serwer na czas trwania scenariusza, a wyjście served emituje jedno zdarzenie na każde przychodzące wywołanie. To właśnie pozwala przetestować webhook od początku do końca w jednym grafie. Zob. Serwery hostowane.

Porównanie z hostowanymi serwerami symulacji

Section titled “Porównanie z hostowanymi serwerami symulacji”
RestormSerwery hostowane (w rodzaju Postman Mock Servers)
Gdzie to działaNa własnej maszynieU dostawcy
OpóźnienieBez wymiany danych przez siećJedna podróż przez internet
Działa bez połączenia
Źródło odpowiedziSamo żądanie, edytowalneZapisany przykład
Szablony {{ }}✔, rozwiązywane przy każdym wywołaniuOgraniczone
Współdzielenie portuNie dotyczy
PrywatnośćNic nie opuszcza maszynyDane przechodzą przez usługę