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ı.
API kaynakları
Size yardımcı olabileceğimiz aşağıdaki kaynak türleri hakkında kullanılır:
- Alan: Envanter aralık
- Rezervasyon: envanter aralığı randevusu
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
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