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. You will address these 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.
이 실습의 나머지 부분과 기타 사항에 대해 알아보려면 Qwiklabs에 가입하세요.
- Google Cloud Console에 대한 임시 액세스 권한을 얻습니다.
- 초급부터 고급 수준까지 200여 개의 실습이 준비되어 있습니다.
- 자신의 학습 속도에 맞춰 학습할 수 있도록 적은 분량으로 나누어져 있습니다.