Implementowanie serwera rezerwacji listy oczekujących

Aby rezerwować z Google usługę do tworzenia i aktualizowania rezerwacji w Twoim imieniu, musisz skonfigurować serwer rezerwacji.

  • Wdrożenie listy oczekujących. Będzie ona używana, gdy bierzesz udział w programie pilotażowym listy oczekujących. Dzięki temu funkcja Zarezerwuj z Google będzie mogła pobierać szacunkowe dane o oczekiwaniu i tworzyć wpisy listy oczekujących w imieniu użytkownika.
  • Wdrożenie standardowe. Dzięki temu usługa Zarezerwuj z Google może w imieniu użytkownika tworzyć spotkania i rezerwacje w Twoim imieniu. Aby dowiedzieć się, jak wdrożyć serwer rezerwacji do integracji standardowej, zapoznaj się z informacjami o wdrażaniu serwera rezerwacji.

Informacje o konfigurowaniu połączenia z piaskownicą i serwerami rezerwacji w środowisku produkcyjnym znajdziesz w dokumentacji portalu dla partnerów.

Zaimplementuj interfejs API typu REST

Zaimplementuj interfejs API na podstawie interfejsu REST. Pozwala to Google wysyłać żądania serwera rezerwacji przez HTTP.

Na początek skonfiguruj programowy lub sandbox serwer rezerwacji, który można połączyć ze środowiskiem piaskownicy Zarezerwuj z Google. Przejście do środowiska produkcyjnego odbywa się dopiero po pełnym przetestowaniu serwera piaskownicy.

Metody

Każdy typ serwera rezerwacji wymaga innego zestawu metod interfejsu API. Opcjonalnie możesz pobrać definicję usługi w formacie proto, aby rozpocząć implementację interfejsu API. Tabele poniżej pokazują metody poszczególnych implementacji i zawierają linki do formatów protokołu usługi.

Implementacja listy oczekujących
Definicja usługi listy oczekujących Pobierz plik definicji usługi proto.
Metoda Żądanie HTTP
Kontrola stanu zdrowia GET /v3/HealthCheck/
BatchGetGetEstimates POST /v3/BatchGetPendingEstimates/
Utwórz listę oczekujących POST /v3/CreatePendinglistEntry/
Pobieranie listy oczekujących POST /v3/GetPendingListEntry/
Usuwanie listy oczekujących oczekujących POST /v3/DeletePendinglistEntry/

Zasoby interfejsu API

Lista oczekujących

Do implementacji rezerwacji opartej na liście oczekujących służą te zasoby:

Procedura: tworzenie wpisu na liście oczekujących

Z tej sekcji dowiesz się, jak utworzyć rezerwację w ramach implementacji listy oczekujących.

Rysunek 2. Przepływ pracy dotyczący tworzenia wpisu na liście oczekujących
Rysunek 2. Procedura tworzenia wpisu na liście oczekujących

Gdy użytkownik tworzy wpis na liście oczekujących, wysyła mu się imię, nazwisko, numer telefonu i adres e-mail. Adres e-mail jest taki sam jak konto Google użytkownika i jest traktowany jako unikalny identyfikator. Z Twojej strony wynika, że ta lista oczekujących musi być traktowana jako gościa, ponieważ usługa Zarezerwuj z Google nie może wyszukać konta użytkownika w Twoim systemie. Upewnij się, że końcowa pozycja na liście oczekujących wygląda tak samo jak u sprzedawców; pozycje z systemu listy oczekujących.

Bezpieczeństwo i uwierzytelnianie

Cała komunikacja z serwerem rezerwacji odbywa się przez HTTPS. Dlatego tak ważne jest, aby serwer miał prawidłowy certyfikat TLS, który pasuje do jego nazwy DNS. Aby ułatwić konfigurację serwera, zalecamy użycie bezpłatnego narzędzia do weryfikacji SSL/TLS, takiego jak Qualys' Test Server SSL.

Wszystkie żądania wysyłane przez Google do serwera rezerwacji będą uwierzytelniane przy użyciu podstawowego uwierzytelniania HTTP. Podstawowe dane uwierzytelniające (nazwę użytkownika i hasło) serwera rezerwacji możesz wpisać na stronie konfiguracji serwera rezerwacji w portalu partnera. Hasła muszą być wyświetlane co 6 miesięcy.

Przykładowe implementacje szkieletu

Na początek zapoznaj się z tymi przykładowymi szkieletami serwera rezerwacji na temat platform Node.js i Java:

Te serwery nie używają metod typu REST.

Wymagania

Błędy HTTP i logiki biznesowej

Kiedy backend obsługuje żądania HTTP, mogą wystąpić 2 rodzaje błędów.

  • Błędy związane z infrastrukturą lub nieprawidłowymi danymi
  • Błędy związane z logiką biznesową
    • Zwróć kod stanu HTTP ustawiony na 200 OK i określ logikę biznesową firmy w treści odpowiedzi. Rodzaje błędów logiki biznesowej, które możesz napotkać, są różne w przypadku różnych typów implementacji serwera.

W implementacji listy oczekujących błędy logiki biznesowej są rejestrowane w sekcji Błąd logiki biznesowej listy oczekujących i zwracane w odpowiedzi HTTP. Podczas tworzenia zasobu mogą wystąpić błędy logiki biznesowej, na przykład obsługa metody CreateWaitlistEntry. Przykłady (lista nie jest pełna):

  • Użyta wartość ABOVE_MAX_PARTY_SIZE jest używana, gdy żądany wpis na liście oczekujących przekracza limit liczby sprzedawców.
  • Pole MERCHANT_CLOSED jest używane, gdy lista oczekujących nie jest otwarta, ponieważ sprzedawca jest już zamknięty.

Idempotentność

Komunikacja przez sieć nie zawsze jest niezawodna. Google może ponownie spróbować wysłać żądanie HTTP, jeśli nie otrzyma odpowiedzi. Z tego powodu wszystkie metody mutacji muszą być idempotentne:

  • CreateWaitlistEntry
  • DeleteWaitlistEntry

Każda wiadomość z wyjątkiem DeleteWaitlistEntry zawiera tokeny idempotentności, które jednoznacznie identyfikują żądanie. To pozwala rozróżnić powtórzone wywołanie REST z intencją utworzenia jednego żądania i 2 osobnych żądań. DeleteWaitlistEntry jest jednoznacznie identyfikowany na podstawie identyfikatorów wpisów na liście oczekujących, więc token tożsamości idempotentności nie jest zawarty w żądaniach.

Oto kilka przykładów pokazujących, jak serwery rezerwacji obsługują idempotentność:

  • Pomyślna odpowiedź HTTP CreateWaitlistEntry zawiera identyfikator pozycji listy oczekujących. Jeśli ten sam element CreateWaitlistEntryRequest zostanie po raz drugi otrzymany (z tym samym parametrem idempotency_token), musisz zwrócić ten sam element CreateWaitlistEntryResponse. Nie utworzono drugiego wpisu na liście oczekujących i nie wystąpił błąd.

    Pamiętaj, że jeśli próba resetowania CreateWaitlistEntry się nie powiedzie, w tym przypadku ponowienie zostanie wysłane to samo żądanie.

Wymaganie idempotentności dotyczy wszystkich metod, które zmieniają stan.