СоздатьБронированиеГотово,СоздатьБронированиеГотово

Для выполнения задачи этапа CreateBooking Ready» необходимо успешно создать и реализовать метод CreateBooking . Этот метод вызывается, когда пользователь пытается создать бронирование. Если бронирование успешно создано, ответ будет содержать уникальный booking_id , который будет использоваться для ссылок на бронирование в будущих запросах или обновлениях.

Требования к задаче CreateBooking

  • 10 запросов CreateBooking в тестовой среде с вероятностью успеха 90% и выше.
  • В рабочей среде выполнено 3 запроса CreateBooking с вероятностью успеха 90% и выше.

Основы CreateBooking

Когда пользователь инициирует бронирование, на сервер бронирования партнера отправляется запрос CreateBooking . Ответ на запрос указывает либо на успешное бронирование, либо на неудачное. В случае неудачного бронирования ответ должен содержать описание ошибки бизнес-логики. Например, слот стал недоступен или слот уже забронирован тем же пользователем.

Когда пользователь создает бронирование, Google отправляет вам имя, фамилию, номер телефона и адрес электронной почты пользователя. Для получения дополнительной информации см. Политику сопоставления и создания учетных записей .

Идемпотентность

Сетевая связь не всегда надежна, и Google может повторять HTTP-запросы, если не получает ответа. По этой причине все методы, изменяющие состояние, должны быть идемпотентными:

  • CreateBooking
  • UpdateBooking

Для каждого запроса, за исключением UpdateBooking , в него включаются токены идемпотентности для уникальной идентификации запроса. Это позволяет различать повторные REST-запросы, цель которых — создать один запрос, и два отдельных запроса. Идентификаторы соответствующих записей бронирования в UpdateBooking помогают однозначно идентифицировать их, поэтому в их запросах токен идемпотентности не включается.

Ниже приведены несколько примеров того, как серверы бронирования обрабатывают идемпотентность:

  • Успешный HTTP-ответ CreateBooking включает созданное бронирование. В некоторых случаях оплата обрабатывается в рамках процесса бронирования. Если тот же CreateBookingRequest получен повторно с тем же idempotency_token , должен быть возвращен тот же CreateBookingResponse . Второе бронирование не создается, и с пользователя взимается плата ровно один раз, если это применимо.

Требование идемпотентности применяется ко всем методам, изменяющим состояние.