3. • How to create a shared backend for the
web and mobile clients?
• How to handle the scalability and
availability?
• How to migrate the current backend
version to all the clients?
4. Endpoints provides a simple way to develop a shared web
backend and also provides critical infrastructures, such as OAuth
2.0 authentication, eliminating a great deal of work that would
otherwise be needed.
5. Google Cloud Endpoints consists of tools, libraries and capabilities that
allow you to generate APIs and client libraries from an App Engine
application, referred to as an API backend, to simplify client access to
data from other applications
6. Google Cloud Endpoints
Cloud Endpoints makes it easy to expose
your code via RESTful API & RPC services
that can easily be consumed by web and
mobile applications.
7. V1 V2
API Burgeoning support by Cloud Endpoints
Different Api versions can
co-exist and you can do a
gradual stage of roll out of
these changes.
New clients can talk to V2
where as the older ones
can slowly move over until
we deprecate the V1
10. With App Engine comes the ability to scale very easily.
As we get more traffic
Google automatically
spins up more app
engine instances.
When the traffic levels
are off the peak it kills
off instances that are
not needed anymore
11. Endpoints libraries, tools, and samples
Google Cloud Endpoints
Google Cloud Endpoints provide the following libraries and tools:
• The Endpoints library in the SDK.
• Maven artifacts for creating new backend API projects,
generating client libraries and discovery docs
• Alternatively to Maven, the endpoints.sh command line tool (for
Linux), or endpoints.cmd (for Windows) that you can use to
generate client libraries and discovery documents.
• Another alternative to Maven is Endpoints support in the Google
Plugin for Eclipse.
12. Google Cloud Endpoints
• To use Endpoints, be sure you're using the latest version of the
Google App Engine Java SDK.
• If you are using the Google Plugin for Eclipse (GPE) to generate
endpoints and client libraries, you'll need the latest GPE version.
• You'll also need to be familiar with development using Google
App Engine and the Java runtime.
• And finally, you'll need to know how to develop the client of your
choice, such as JavaScript web clients, or mobile clients of your
choice, such as Android or iOS.
Requirements
13. Google Cloud Endpoints
• Create your backend API project (using Maven to do this is the
easiest method), then write your API backend code.
• Annotate your API backend code, so classes and client libraries
can be generated from it. (Alternatively, use the Google Plugin
for Eclipse, which can annotate for you.)
• Generate the client library using Maven, or alternatively, the
endpoints.sh command line tool. (Another alternative is to use
the Google Plugin for Eclipse to generate the client library.)
• Write your client app, using the client library when making calls
to the API backend.
The development process
18. Running and testing API
backends locally
• Start the API backend by invoking the development app
server.
• In your browser, visit the URL
• Double-click the API you created to display the list of its
methods.
mvn appengine:devserver
Wait till...
INFO: Dev App Server is now running.
http://localhost:8080/_ah/api/explorer
19. Deploying an API backend
• Change directory to your project main directory
containing the pom.xml file.
• Invoke Maven as follows:
• After you deploy, you can use the API Explorer to
experiment with your API without using a client app by
visiting.
mvn appengine:update
https://your_app_id.appspot.com/_ah/api/explorer
24. Enabling a JavaScript client for Endpoints
• Add the script that includes the Google-hosted JavaScript client
library to your HTML:
• Notice that the JavaScript line above includes an onload property
specifying the function to be used as a callback after the library
loads. Replace "init" with the name of your page initialization
function if you did not name it init.
• Inside your callback function, load your Endpoint:
<script src="https://apis.google.com/js/client.js?onload=init">
</script>
<script src="https://apis.google.com/js/client.js?onload=init">
</script>
<script src="https://apis.google.com/js/client.js?onload=init">
</script>
function init() {
gapi.client.load('conference', 'v1', null, '//' + window.location.host +'/_ah/api');
gapi.client.load('oauth2', 'v2', function () {
angular.bootstrap(document, ['conferenceApp']);
});
};