Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Introduction to google endpoints

Slide used for session in Google I/O Extended 2015 Cochin, on Introduction to Google Endpoints

  • Inicia sesión para ver los comentarios

  • Sé el primero en recomendar esto

Introduction to google endpoints

  1. 1. Introduction to Google Endpoints SHINTO ANTO
  2. 2. Your Application How can you build a shared backend for web clients and mobile clients such as Android and IOS.
  3. 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. 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. 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. 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. 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
  8. 8. Why App Engine?
  9. 9. 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
  10. 10. 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.
  11. 11. 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
  12. 12. 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
  13. 13. Endpoint Annotations • @Api: API-Scoped Annotations • @ApiMethod: Method-Scoped Annotations • @Named • @ApiClass • @ApiNamespace • Required Imports – import com.google.api.server.spi.config.Api; import com.google.api.server.spi.config.AnnotationBoolean; import com.google.api.server.spi.config.ApiMethod; import com.google.api.server.spi.config.ApiMethod.HttpMethod; import javax.inject.Named;
  14. 14. /** * Defines conference APIs. */ @Api(name = "conference", version = "v1", scopes = {Constants.EMAIL_SCOPE }, clientIds = { Constants.WEB_CLIENT_ID, Constants.API_EXPLORER_CLIENT_ID }, description = "API for the Conference Central Backend application.") public class ConferenceApi { /** * Returns a Conference object with the given conferenceId. * */ @ApiMethod(name = "getConference“,path = "conference/{websafeConferenceKey}“, httpMethod = HttpMethod.GET) public Conference getConference(@Named("websafeConferenceKey") final String websafeConferenceKey) throws NotFoundException { Key<Conference> conferenceKey = Key.create(websafeConferenceKey); Conference conference = ofy().load().key(conferenceKey).now(); if (conference == null) { throw new NotFoundException("No Conference found with key: " + websafeConferenceKey); } return conference; }
  15. 15. <?xml version="1.0" encoding="utf-8"?> <appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> <application> </application> <version> </version> <threadsafe>true</threadsafe> <system-properties> <property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/> </system-properties> </appengine-web-app> appengine-web.xml Required Files and Configuration
  16. 16. web.xml <?xml version="1.0" encoding="utf-8" standalone="no"?><web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>SystemServiceServlet</servlet-name> <servlet-class>com.google.api.server.spi.SystemServiceServlet</servlet-class> <init-param> <param-name>services</param-name> <param-value> </param- value> </init-param> </servlet> <servlet-mapping> <servlet-name>SystemServiceServlet</servlet-name> <url-pattern>/_ah/spi/*</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> </web-app>
  17. 17. 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
  18. 18. 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
  19. 19. Api Explorer
  20. 20. List of Created Api’s
  21. 21. Parameters for API Call
  22. 22. 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']); }); };
  23. 23. So Start Coding Now

×