Java Booking API-Client
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Sie können unseren Java-API-Client für Echtzeitaktualisierungen herunterladen, um die Echtzeitaktualisierungen zu implementieren.
Voraussetzung:
Erstellen Sie ein Dienstkonto und laden Sie den privaten Schlüssel herunter.
Erste Schritte:
- Laden Sie die Java-Clientbibliothek herunter und entpacken Sie die Datei, um das Paket „mapsbooking“ zu erhalten.
-
Erstellen Sie in Ihrer IDE ein Java-Projekt und laden Sie die Beispielcodes InventoryUpdate.java und BookingNotification.java aus diesem Repository herunter:
git clone https://maps-booking.googlesource.com/java-maps-booking-api-example
und importieren Sie sie in Ihr Java-Projekt im Verzeichnis „src“.
- Erstellen Sie eine Kopie Ihres privaten Schlüssels (JSON-Datei) im Verzeichnis „src“.
- Fügen Sie die Java-Clientbibliothek den Abhängigkeiten Ihres Projekts hinzu (fügen Sie die JAR-Dateien in das Verzeichnis „mapsbooking“ und „libs-sources“ ein).
- Folgen Sie in beiden Java-Dateien den TODOs, um die Implementierungen abzuschließen.
Weitere Informationen zur REST API
Fehlerbehebung:
-
Wenn Sie versuchen, einen neuen Händler/Dienst mit einer vorhandenen merchantId oder serviceId zu erstellen, wird die folgende Fehlermeldung angezeigt:
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”
}
- Wenn Sie einen Replace Availability-Aufruf mit einer ungültigen merchantId oder serviceId senden, wird keine Fehlermeldung ausgegeben. Das liegt daran, dass Änderungen an Verfügbarkeitsslots über RTUs die Ausführung in einer anderen Reihenfolge unterstützen und daher nicht mit einer merchantId oder serviceId verknüpft sind. Die Slots in der Anfrage werden jedoch aufgrund der ungültigen merchantId oder serviceId nicht in der Produktionsumgebung ausgeliefert. Damit die Slots ausgeliefert werden können, fügen Sie den fehlenden Händler oder Dienst über RTUs oder Feeds hinzu.
- In allen Aktualisierungsfunktionen muss der Parameter „updateMask“ im FieldMask-Format angegeben werden, um die zu aktualisierenden Felder anzugeben. Die API darf nur die Werte der Felder ändern, die in der Maske angegeben sind, und die anderen unverändert lassen. Wenn Sie den falschen updateMask-String übergeben, wird die Aktualisierung nicht wirksam. Wenn bei der Aktualisierung keine Feldmaske vorhanden ist, gilt der Vorgang für alle Felder, als wäre eine Feldmaske für alle Felder angegeben. Wenn Sie also alle Felder aktualisieren möchten, lassen Sie die Updatemaske einfach leer.
- Felder mit einem Nullwert werden in der Antwort nicht angezeigt.
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2025-07-26 (UTC).
[null,null,["Zuletzt aktualisiert: 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."]]