Szkielet serwera rezerwacji dla Node.js

To implementacja referencyjna serwera rezerwacji API v3 do integracji standardowej na podstawie Node.js.

Wymagania wstępne

Wymaga zainstalowania

Pierwsze kroki

Serwer rezerwacji jest implementowany za pomocą standardowej wersji Node.js bez żadnych dodatkowych bibliotek ani platform. Jeśli używasz innych frameworków, możesz łatwo zmienić tę implementację na Express.js, MEAN.js lub dowolny inny framework oparty na Node.js.

Implementacja nie korzysta też z bibliotek buforów protokołów, ale zamiast tego opiera się na prostej serializacji JSON i 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 przychodzące i wychodzące żądania w konsoli, dzięki czemu możesz śledzić jego wykonanie.

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 bookingserver.js w środowisku Node.js i w razie potrzeby ustawiając punkty przerwania.

Testowanie serwera rezerwacji

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

Do przeprowadzenia testów musisz utworzyć plik tekstowy, w którym będą przechowywane Twoje dane 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 testowych sprzedawców. 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ń:

  • Testowanie wywołań metody HealthCheck:
    bin/bookingClient -server_addr="localhost:8080" -health_check_test=true -credentials_file="./cred.txt"
  • Testowanie wywołań metody 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 implementowania własnego serwera rezerwacji może być konieczne przeprowadzenie dodatkowych testów (np.list_bookings_test, rescheduling_test itp.) w celu uzyskania pozytywnych wyników wszystkich testów (-all_tests=true).