Google Maps Web Services Proxy for Mobile Applications
Suppose you want to create an augmented reality style mobile game, where users must visit real-world locations to progress through the game. Given that a mobile device has access to its current location, the game can randomly generate each location the user needs to visit, but how do you know these locations are accessible? A randomly generated location could very well be in the ocean, or some other inaccessible area.
What you need is a way to identify real-world locations that your game can randomly offer as destinations for the game. The Google Places API is a perfect fit for this, as it allows you to search for places within a particular radius at a given location. Given that the user's mobile device knows its current location, you can use the Google Places API Web Service to search for nearby places and offer these as destinations the player must reach.
Using the Google Places API directly from a mobile device presents some interesting problems in terms of ensuring API key security, and optimising network performance. This lab helps you address those issues by building a server-side proxy using Golang and Google App Engine. The proxy will take requests from the mobile devices, and make requests to the Google Places API on its behalf.
What you'll build
In this lab, you'll build a Google App Engine proxy for the Google Places API web service, which will:
Protect your Google Maps API key from being directly exposed to a mobile application.
Reduce network traffic by removing extraneous data provided by the Google Places API before returning it to the mobile application.
Cache data provided by the Google Places API to improve network performance, while still complying with the Google Places API Policies.
What you'll learn
How to use Google Maps APIs Web Services safely.
What you'll need
Basic knowledge of Golang.
Join Qwiklabs to read the rest of this lab...and more!
- Get temporary access to the Google Cloud Console.
- Over 200 labs from beginner to advanced levels.
- Bite-sized so you can learn at your own pace.