Rezervasyon sunucusunu uygulama: API v2

Sizin tarafınızda bir Rezervasyon sunucusu oluşturduğunuzda İşlemler Merkezi'nin kullanıcı adına sizinle randevu / rezervasyon / rezervasyon oluşturması.

gRPC'ye dayanan bir API arayüzü uygulayın

Lütfen unutmayın: Tüm yeni iş ortakları gRPC yerine REST API arayüzünü kullanmalıdır API

gRPC'ye dayanan bir API arayüzü uygulayın. Bu sayede Google, rezervasyon isteği gönderebilir. API yüzeyi gRPC'nin protobuf temelli IDL.

Yeni iş ortaklarımızdan önerilen bir API v2 grubunu uygulamalarını istiyoruz. İş ortakları, altyapıları için en uygun URL'yi ve BAĞLANTIYI seçebilir.

Bu bölümde, önerilen bir API v2 kümesi tanıtılmaktadır. Şu iş ortakları için geçerlidir: API v0'ı uygulamadı. Şu anda API'yi uygulayan mevcut iş ortaklarımız v0 ile ilgili daha fazla bilgi edinmek için lütfen İşlemler Merkezi ile iletişime geçin.

Hizmeti kullanmaya başlamak için hizmet tanımını aşağıdaki proto biçiminde indirin API uygulaması.

Hizmeti indirin tanım

API kaynakları

Size yardımcı olabileceğimiz aşağıdaki kaynak türleri hakkında kullanılır:

Yöntemler

gRPC sunucusu:

Aşağıdaki 5 yöntem, gerekli BookingService RPC'lerini tanımlar:

// Manages slot availability, leases and bookings for an inventory of
// appointments
service BookingService {
  // Gets availability information for an appointment slot
  rpc CheckAvailability(CheckAvailabilityRequest)
      returns (CheckAvailabilityResponse) {}

  // Creates a booking
  rpc CreateBooking(CreateBookingRequest) returns (CreateBookingResponse) {}

  // Updates an existing booking
  rpc UpdateBooking(UpdateBookingRequest) returns (UpdateBookingResponse) {}

  // Gets status for an existing booking
  rpc GetBookingStatus(GetBookingStatusRequest)
      returns (GetBookingStatusResponse) {}

  // Lists all upcoming bookings for a user
  rpc ListBookings(ListBookingsRequest) returns (ListBookingsResponse) {}
}

Akış: rezervasyon oluşturma

Şekil 1: Şu kişilerden Rezervasyon Oluşturma: bir slot

Google, rezervasyon oluştururken iş ortağına kullanıcının adını gönderir. soyadı, telefon numarası ve e-posta adresi. Bu, iş ortağının bakış açısından giriş yapmadan ödeme yapma İş ortağının sisteminde kullanıcının hesabını aramak için kullanılır. Son rezervasyon İş ortağının satıcılarına sistemlerinde olduğu gibi, rezervasyonlar gibi gösterilmelidir. bir teklif oluşturabilirsiniz.

Java'da Skeleton Uygulaması

Başlamak için Java'da derlenebilir bir iskelet gRPC sunucusu sağlıyoruz yüklü olduğundan emin olun. Şuradan inceleyebilirsiniz: Örnekler > gRPC Referans Uygulaması bölümüne ekleyin. Bu sunucu, kimlik doğrulama ve durum hizmeti de dahil olmak üzere entegrasyon hakkında daha fazla bilgi edinin.

Şartlar

gRPC hatası ve iş mantığı hatası

Bir iş ortağı arka ucu gRPC isteklerini işlediğinde iki tür hata oluşabilir: yanlış verilerden kaynaklanan beklenmedik hatalar; ve iş mantığı hatalarına karşı rezervasyon oluşturamadığınızı veya güncelleyemediğinizi belirtin (bkz. Rezervasyon Hata), (ör. istenen zaman aralığı kullanılamıyorsa).

Beklenmedik hatalarla karşılaşılırsa istemciye standart gRPC hata kodları. Bunlarla sınırlı olmamakla birlikte aşağıda bazı örnekleri bulabilirsiniz:

  • INVALID_ARGUMENT etiketi, CheckAvailability ve CreateLease gibi RPC'lerde kullanılır. ve sağlanan alan geçersiz bilgi içeriyorsa döndürülmelidir.
  • NOT_FOUND, CreateBooking ve ListBookings gibi RPC'lerde kullanılır ve sağlanan tanımlayıcı iş ortağı tarafından bilinmiyorsa döndürülür.

Standart gRPC hata kodları için her yöntemin referansına bakın veya tam durum kodu listesine bakın.

Aksine, iş mantığı hataları Rezervasyon Hata ve için de geçerli olur. Oluşturma sırasında iş mantığı hatalarıyla karşılaşılabilir veya bir kaynağı güncelleme (ör. RPC'lerin CreateBooking Güncelleme Rezervasyonu. Bunlarla sınırlı olmamakla birlikte aşağıda bazı örnekleri bulabilirsiniz:

  • İstenen alan artık kullanılamıyorsa SLOT_UNAVAILABLE kullanılır.
  • Sağlanan kredi kartı türü şuysa PAYMENT_ERROR_CARD_TYPE_REJECTED kullanılır kabul edilmedi.

Aciliyet

Ağ üzerinden iletişim her zaman güvenilir değildir ve Google Reserve yanıt alınmazsa RPC'leri yeniden dener. Bu nedenle, değişime uğrayan tüm RPC'ler durumunun (CreateBooking, UpdateBooking) idempotent olması gerekiyor. Şunun için mesaj iste: Bu RPC'ler isteği benzersiz bir şekilde tanımlamak ve istek üzerine düşen ayrımını yapmak için iş ortağından tek rezervasyon) ve iki ayrı rezervasyon.

Bunlarla sınırlı olmamakla birlikte aşağıda bazı örnekleri bulabilirsiniz:

  • Başarılı CreateBooking TBG'si oluşturulan rezervasyon, bazı durumlarda ise müşterinin bu veriler rezervasyon akışının bir parçası olarak işlenir. CreateBookingRequest aynı ikinci kez alındığında (idempotency_token dahil), ardından aynı CreateBookingResponse'un döndürülmesi gerekiyor. İkinci rezervasyon oluşturulmaz ve kullanıcıdan (geçerliyse) tam olarak bir kez ödeme alınır. CreateBooking denemesi başarısız olursa iş ortağı arka ucunun aynı istek tekrar gönderilir.

Idempotency gereksinimi, idempotency jetonları içeren tüm yöntemler için geçerlidir.

gRPC Sunucusu güvenliği ve kimlik doğrulaması

İşlem Merkezi'nden arka ucunuza yapılan aramaların SSL/TLS kullanılarak güvenliği gerekir temelli karşılıklı istemci/sunucu doğrulamasına sahip olmalıdır. Bu, gRPC uygulamanız için geçerli bir sunucu sertifikası kullanmalı ve yeni bir sertifikanın geçerli istemci sertifikasına sahip olmanız gerekir.

Sunucu sertifikası: İş ortağı sunucusunun geçerli bir sunucu sertifikası ile bağlantılı (bkz. kabul edilen kök CA'ların listesini inceleyin. GRPC sunucusu uygulamaları, kök sertifika. Bunu yapmanın en kolay yolu iş ortağının web barındırıcısı tarafından sağlanan ve (yine PEM biçiminde) sunucu sertifikası.

Sunucu sertifikası, bağlantı zamanında doğrulanır ve kendinden imzalıdır kabul edilmez. Asıl sertifika içeriği geçerli olması gerekir. Sertifikanızın geçerliliğini kontrol edebilirsiniz. kullanabilirsiniz:

echo "" | openssl s_client  -connect YOUR_URL:YOUR_PORT  -showcerts -CApath /etc/ssl/certs

İstemci sertifikası: İş ortağına (Google olarak) kimliğinizi doğrulamak için, Google Internet Authority G2 (CA) tarafından verilen bir istemci sertifikası sertifikası) şu özellikleri kullanın:

Alan Değer
CN mapsbooking.businesslink-3.net
SAN DNS:mapsbooking.businesslink-3.net

Bu istemci sertifikası olmadan yapılan bağlantı denemeleri, iş ortağı sunucusu.

Sunucu, istemci sertifikasını doğrulamak için bir dizi güvenilir istemciyi kullanır. kök sertifikalar. Bu güvenilir kök kümesini Mozilla gibi otorite veya şu anda Google Internet tarafından önerilen kökler kümesini yükleyin Yetki G2. İkisinde de bazı durumlarda, kök sertifikaları manuel olarak güncellemeniz gerekebilir.

gRPC Durum Denetimi Protokolü'nü uygulama

GRPC Durum Denetimini Uygulama Protokol. Bu protokol, Google'ın gRPC'nizin arka uç durumunu izlemesini sağlar hakkında bilgi edindiniz. Hizmet spesifikasyon GRPC dağıtımının bir parçasıdır. GRPC adlandırma kuralına uygun olarak durum denetimi çağrılarındaki hizmetin API v2 için ext.maps.booking.partner.v2.BookingService veya API v0 için ext.maps.booking.partner.v0.BookingService. Durum denetimi, diğer uç noktalarla aynı URL ve PORT üzerinde çalışır.

Diğer sürümler

API'nin diğer sürümleriyle ilgili dokümanlar için aşağıdaki sayfalara bakın: * API v3 * API v0