Klient Java Booking API
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Aby rozpocząć wdrażanie aktualizacji w czasie rzeczywistym, możesz pobrać naszego klienta interfejsu API do aktualizacji w czasie rzeczywistym w języku Java.
Warunek wstępny:
Utwórz konto usługi i pobierz klucz prywatny.
Wypróbuj:
- Pobierz bibliotekę klienta Java, rozpakuj plik, aby uzyskać pakiet „mapsbooking”.
-
Utwórz projekt Java w IDE, a następnie pobierz z tego repozytorium przykładowe kody InventoryUpdate.java i BookingNotification.java:
git clone https://maps-booking.googlesource.com/java-maps-booking-api-example
i zaimportuj je do projektu Java w katalogu src.
- Utwórz kopię klucza prywatnego (plik JSON) w katalogu src.
- Dodaj bibliotekę klienta Java do zależności projektu (uwzględnij pliki jar w katalogu mapsbooking i libs-sources).
- W obu plikach java postępuj zgodnie z instrukcjami TODO, aby ukończyć implementację.
Więcej informacji o interfejsie REST API znajdziesz tutaj.
Rozwiązywanie problemów:
-
Jeśli spróbujesz utworzyć nowego sprzedawcę lub usługę z istniejącym identyfikatorem merchantId lub serviceId, pojawi się komunikat o błędzie:
409 Conflict
{
“code” : 409,
“errors” :
[{
“domain” : “global”,
“message” : “Requested entity already exists”,
“reason” : “alreadyExists”,
“debugInfo” : “detail: "[ORIGINAL ERROR] generic::already_exists: ...”\n"
}],
“message” : “Requested entity already exists”,
“status” : “ALREADY_EXISTS”
}
- Gdy wywołasz metodę replace availaiblity z nieprawidłowym identyfikatorem merchantId lub serviceId, nie pojawi się komunikat o błędzie. Dzieje się tak, ponieważ zmiany w dostępności slotów za pomocą RTU obsługują wykonanie poza kolejnością i nie są powiązane z merchantId ani serviceId. Jednak sloty w żądaniu nie będą wyświetlane w wersji produkcyjnej z powodu nieprawidłowego merchantId lub serviceId. Aby udostępnić miejsca na reklamy, dodaj brakującego sprzedawcę lub usługę za pomocą RTU lub plików danych.
- We wszystkich funkcjach update parametr „updateMask” musi mieć format FieldMask, aby określać pola do zaktualizowania. Interfejs API musi zmieniać tylko wartości pól zgodnie z określonymi w masce i nie dotykać pozostałych. Jeśli podasz nieprawidłowy ciąg znaków updateMask, aktualizacja nie wejdzie w życie. Jeśli podczas aktualizacji nie ma maski pola, operacja zostanie zastosowana do wszystkich pól (tak jakby została podana maska wszystkich pól). Jeśli chcesz zaktualizować wszystkie pola, po prostu pozostaw parametr updateMask pusty.
- W odpowiedzi nie jest wyświetlane żadne pole o wartości zero.
O ile nie stwierdzono inaczej, treść tej strony jest objęta licencją Creative Commons – uznanie autorstwa 4.0, a fragmenty kodu są dostępne na licencji Apache 2.0. Szczegółowe informacje na ten temat zawierają zasady dotyczące witryny Google Developers. Java jest zastrzeżonym znakiem towarowym firmy Oracle i jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-26 UTC.
[null,null,["Ostatnia aktualizacja: 2025-07-26 UTC."],[[["\u003cp\u003eDownload the Java real-time update API client and sample code to get started with implementing real-time updates for your booking services.\u003c/p\u003e\n"],["\u003cp\u003eYou will need a service account with a downloaded private key to use the client.\u003c/p\u003e\n"],["\u003cp\u003eThe client library allows you to manage inventory and booking notifications, and more details on the REST API are available in the documentation.\u003c/p\u003e\n"],["\u003cp\u003eTroubleshooting information is provided for common issues such as entity conflicts, invalid IDs, and update mask usage.\u003c/p\u003e\n"],["\u003cp\u003eRemember that zero-valued fields are not displayed in responses from the API.\u003c/p\u003e\n"]]],["Download the Java real-time update API client and library. Create a Java project, import the sample code files, `InventoryUpdate.java` and `BookingNotification.java`, and copy your private key to the `src` directory. Add the Java Client Library to your project dependencies. Follow the TODOs in the Java files to complete implementation. Be aware of 409 errors with existing IDs. Replace availability calls won't throw errors with invalid IDs. Ensure the 'updateMask' parameter is in FieldMask format in update functions.\n"],null,["# Java Booking API client\n\nYou can download our\n[Java real time update API client](https://maps-booking.googlesource.com/java-maps-booking-api-example/) to help get started implementing\nthe real time updates.\n\nPrerequisite:\n-------------\n\nHave your service account created, download your private key.\n\nGet started:\n------------\n\n1. Download the [Java client library](https://dl.google.com/mapsbooking/apiclients/v1alpha/mapsbooking_java_public.zip) unzip the file to get the 'mapsbooking' package.\n2. Create a java project in your IDE, download the sample codes\n [InventoryUpdate.java](https://maps-booking.googlesource.com/java-maps-booking-api-example/+/master/InventoryUpdate.java) and\n [BookingNotification.java](https://maps-booking.googlesource.com/java-maps-booking-api-example/+/master/BookingNotification.java) from this repo:\n\n ```java\n git clone https://maps-booking.googlesource.com/java-maps-booking-api-example\n ```\n\n and import them into your java project under src directory.\n3. Make a copy of your private key (JSON file) to the src directory.\n4. Add the Java Client Library to the dependencies of your project (include jar files under mapsbooking and libs-sources directory).\n5. In both java files, follow the TODOs to complete your implementations\n\nMore detail about the REST API can be\n[found here](/maps-booking/reference/maps-booking-api/rest).\n\nTroubleshooting:\n----------------\n\n1. When trying to create a new merchant/service with an existing merchantId or\n serviceId, you will get the following error message:\n\n ```java\n 409 Conflict\n {\n \"code\" : 409,\n \"errors\" :\n [{\n \"domain\" : \"global\",\n \"message\" : \"Requested entity already exists\",\n \"reason\" : \"alreadyExists\",\n \"debugInfo\" : \"detail: \"[ORIGINAL ERROR] generic::already_exists: ...\"\\n\"\n }],\n \"message\" : \"Requested entity already exists\",\n \"status\" : \"ALREADY_EXISTS\"\n }\n ```\n2. When making a replace availaiblity call with an invalid merchantId or serviceId, the call will **not** throw an error message. This is because changes to availability slots via RTUs support out-of-order execution and thus is not associated with a merchantId or serviceId. However, the slots in the request will not be served in the production due to the invalid merchantId or serviceId. To make the slots servable, please add the missing merchant or service via RTUs or feeds.\n3. In all update functions, the parameter 'updateMask' must be in [FieldMask](/protocol-buffers/docs/reference/google.protobuf#fieldmask) format to specify the fields to update. The API is required to only change the values of the fields as specified in the mask and leave the others untouched. If you pass the wrong updateMask string, the update will not take effect. If a field mask is not present on update, the operation applies to all fields (as if a field mask of all fields has been specified). So if you want to update all fields, just set the updateMask empty.\n4. Any field that has a zero value is not shown in the response."]]