Szkielet serwera rezerwacji dla Node.js

Jest to implementacja referencyjna serwera rezerwacji interfejsu API w wersji 3 na potrzeby integracji standardowej oparta na Node.js.

Wymagania wstępne

Wymaga instalacji

Pierwsze kroki

Serwer rezerwacji jest zaimplementowany przy użyciu standardowego środowiska Node.js bez dodatkowych bibliotek ani platform, co ma charakter poglądowy. Jeśli używasz innych platform, możesz łatwo zmienić tę implementację na Express.js, MEAN.js lub dowolną inną platformę opartą na Node.js.

Implementacja nie korzysta też z bibliotek bufora protokołu, ale opiera się na prostej serializacji JSON oraz metodach JSON.parse() i JSON.stringify().

Aby pobrać projekt, uruchom to polecenie:

git clone https://maps-booking.googlesource.com/js-maps-booking-rest-server-v3-skeleton

Cała baza kodu składa się tylko z 2 plików JavaScript:

  • bookingserver.js – serwer HTTP i logika obsługi żądań, w tym uwierzytelnianie
  • apiv3methods.js – metody implementujące interfejs API w wersji 3

Po pobraniu plików możesz uruchomić serwer rezerwacji, wykonując to polecenie:

node bookingserver.js

Szkielet zapisuje wszystkie żądania przychodzące i wychodzące w konsoli, dzięki czemu możesz monitorować jego działanie na potrzeby śledzenia.

Jeśli potrzebujesz środowiska IDE do wprowadzania zmian w kodzie lub debugowania, możesz użyć Visual Studio Code lub dowolnego innego edytora. Debuguj projekt, uruchamiając plik bookingserver.js w środowisku Node.js i ustawiając w razie potrzeby punkty przerwania.

Testowanie serwera rezerwacji

Pobierz narzędzie do testowania rezerwacji. Aby go zainstalować, postępuj zgodnie z instrukcjami instalacji podanymi na stronie README.

W przypadku testów musisz utworzyć plik tekstowy do przechowywania danych logowania. Wpisz nazwę użytkownika i hasło w jednym wierszu, np. w pliku o nazwie cred.txt:

username:password

Musisz też mieć lokalną kopię pliku danych o dostępności dla sprzedawców testowych. W przykładowych poleceniach poniżej plik danych o dostępności to avail.json.

Teraz możesz przetestować serwer rezerwacji za pomocą tych poleceń:

  • Wywołania testowe metody HealthCheck:
    bin/bookingClient -server_addr="localhost:8080" -health_check_test=true -credentials_file="./cred.txt"
  • Połączenia testowe z metodą CheckAvailability:
    bin/bookingClient -server_addr="localhost:8080" -check_availability_test=true -availability_feed="./avail.json" -credentials_file="./cred.txt"
  • Testowanie wywołań metod CreateBooking i UpdateBooking:
    bin/bookingClient -server_addr="localhost:8080" -booking_test=true -availability_feed="./avail.json" -credentials_file="./cred.txt"

Podczas wdrażania własnego serwera rezerwacji może być konieczne przeprowadzenie dodatkowych testów (np.list_bookings_test, rescheduling_test itp.) w celu uzyskania pozytywnego wyniku wszystkich testów (-all_tests=true).