Initial commit of java client example for maps booking api
3 files changed
tree: ca5edd6fc7be63e070d6a100f1e8b6df85afee77

Java client example for real-time updates using RESTful calls


Have your service account created, download your private key.

Get started:

  1. Download the Java client library , unzip the file to get the ‘mapsbooking’ package.

  2. Create a java project in your IDE, download the sample codes ( &, import them into your java project under src directory.

  3. Make a copy of your private key (JSON file) to the src directory.

  4. Add the Java Client Library to the dependencies of your project

  5. In both java files, follow the TODOs to complete your implementations

More detail about the REST API can be found here.


  1. Create a merchant/service with existing merchantId/serviceId, your will get following error message: 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” }

  2. Update/Delete with wrong merchantId/serviceId (update with wrong bookingId), your will get following error message: 404 Not Found { “code” : 404, “errors” : [ { “domain” : “global”, “message” : “Requested entity was not found.”, “reason” : “notFound”, “debugInfo” : “detail: "[ORIGINAL ERROR] spanner::Row not found:..."\n” } ], “message” : “Requested entity was not found.”, “status” : “NOT_FOUND” }

  3. In all update functions, the parameter ‘updateMask’ must be in 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.

  4. Since an Availability Slot is not associated with a merchant_id/service_id, if you make the replace availability calls with invalid merchant_id/service_id, you will be able to make the REST call without any issue, but your request will not be served in the production due to the invalid merchant_id/service_id.

  5. Any field that has a zero value is not shown in the response.