This document discusses how to build an Android app using Google App Engine (GAE) and Google Cloud Endpoints. It introduces GAE and Cloud Endpoints, shows how to create RESTful APIs, generate client libraries, and consume the APIs in an Android app. Code examples are provided for defining API methods and services as well as making API calls from Android. The document also covers testing APIs locally and deploying them to GAE.
In this talk, I go over some of the concerns people initially have when adding GraphQL to their existing frontends and backends, and cover some of the tools that can be used to address them.
Meteor MIT Tech Talk 9/18/14: Designing a New Platform For Modern AppsSashko Stubailo
These are the slides for the talk Emily Stark and I presented at MIT on September 9, 2014.
We talked about the components that make up Meteor and how they fit together, finishing off with a more in-depth discussion of DDP, Meteor's Distributed Data Protocol.
GraphQL across the stack: How everything fits togetherSashko Stubailo
My talk from GraphQL Summit 2017!
In this talk, I talk about a future for GraphQL which builds on the idea that GraphQL enables lots of tools to work together seamlessly across the stack. I present this through the lens of 3 examples: Caching, performance tracing, and schema stitching.
Stay tuned for the video recording from GraphQL Summit!
APIdays Paris 2014 - Workshop - Craft and Deploy Your API in a Few Clicks Wit...Restlet
This workshop explained how to craft an API using the first multi-language dedicated Web IDE, host and scale the API with Platform as a Service for web APIs and manage access to this API; including: documentation, client SDKs, access management, firewall and analytics.
What if you could create a GraphQL API by combining many smaller APIs? That's what we're aiming for with schema stitching, the new feature in the Apollo graphql-tools package.
What’s new in angular 12[highlights of angular 12 features]Katy Slemon
Learn about the new Angular 12 features as the latest version update is released. Know what will change in Angular 11 and why you should upgrade to Angular v12
In this talk, I go over some of the concerns people initially have when adding GraphQL to their existing frontends and backends, and cover some of the tools that can be used to address them.
Meteor MIT Tech Talk 9/18/14: Designing a New Platform For Modern AppsSashko Stubailo
These are the slides for the talk Emily Stark and I presented at MIT on September 9, 2014.
We talked about the components that make up Meteor and how they fit together, finishing off with a more in-depth discussion of DDP, Meteor's Distributed Data Protocol.
GraphQL across the stack: How everything fits togetherSashko Stubailo
My talk from GraphQL Summit 2017!
In this talk, I talk about a future for GraphQL which builds on the idea that GraphQL enables lots of tools to work together seamlessly across the stack. I present this through the lens of 3 examples: Caching, performance tracing, and schema stitching.
Stay tuned for the video recording from GraphQL Summit!
APIdays Paris 2014 - Workshop - Craft and Deploy Your API in a Few Clicks Wit...Restlet
This workshop explained how to craft an API using the first multi-language dedicated Web IDE, host and scale the API with Platform as a Service for web APIs and manage access to this API; including: documentation, client SDKs, access management, firewall and analytics.
What if you could create a GraphQL API by combining many smaller APIs? That's what we're aiming for with schema stitching, the new feature in the Apollo graphql-tools package.
What’s new in angular 12[highlights of angular 12 features]Katy Slemon
Learn about the new Angular 12 features as the latest version update is released. Know what will change in Angular 11 and why you should upgrade to Angular v12
GraphQL: The Missing Link Between Frontend and Backend DevsSashko Stubailo
Engineers working on backend data services are often focused on operational concerns like data consistency, reliability, uptime, and storage efficiency. Because each situation calls for a specific set of tradeoffs, one organization can end up with a diverse set of backend databases and services. For the people building the UI and frontend API layers, this diversity can quickly become an issue, especially if the same client needs to call into multiple backends or fetch related objects across different data sources.
GraphQL is a language-agnostic API gateway technology designed precisely to solve this mismatch between backend and frontend requirements. It provides a highly structured, yet flexible API layer that lets the client specify all of its data requirements in one GraphQL query, without needing to know about the backend services being accessed. Better yet, because of the structured, strongly typed nature of both GraphQL queries and APIs, it's possible to quickly get critical information, such as which objects and fields are accessed by which frontends, which clients will be affected by specific changes to the backend, and more.
In this talk, I'll explain what GraphQL is, what data management problems it can solve in an organization, and how you can try it today.
GraphQL is a wonderful abstraction for describing and querying data. Apollo is an ambitious project to help you build apps with GraphQL. In this talk, we'll go over how all the parts—Client, Server, Dev Tools, Codegen, and more—create an end-to-end experience for building apps on top of any data.
## Detailed description
In today's development ecosystem, there are tons of options for almost every part of your application development process: UI rendering, styling, server side rendering, build systems, type checking, databases, frontend data management, and more. However, there's one part of the stack that hasn't gotten as much love in the last decade, because it usually falls in the cracks between frontend and backend developers: Data fetching.
The most common way to load data in apps today is to use a REST API on the server and manage the data manually on the client. Whether you're using Redux, MobX, or something else, you're usually doing everything yourself—deciding when to load data, how to keep it fresh, updating the store after sending updates to the server, and more. But if you're trying to develop the best user experience for your app, all of that gets in the way; you shouldn't have to become a systems engineer to create a great frontend. The Apollo project is based on the belief that data loading doesn't have to be complicated; instead, you should be able to easily get the data you want, when you want it, and it should be managed for you just like React manages updating your UI.
Because data loading touches both the frontend and backend of your app, GraphQL and Apollo have to include many parts to fulfill that promise of being able to seamlessly connect your data together. First, we need client libraries not only for React and JavaScript, but also for native iOS and Android. Then, we must bring server-side support for GraphQL queries, mutations, and most recently subscriptions to every server technology and make those servers easier to write. And finally, we want not only all of the tools that people are used to with REST APIs, but many more thanks to all of the capabilities enabled by GraphQL.
In this talk, we'll go over all of the parts of a GraphQL-oriented app architecture, and how different GraphQL and Apollo technologies come together to solve all of the parts of data loading and management for React developers.
Case Study: Integration Automation Create Delightful API DocsPronovix
There’s more to your API docs than Curl. Sync your non-reference content. Include request examples. Generate SDK docs from the OpenAPI definition. Want to know how we did it?
Tools for designing and building great APIsKong Inc.
A review of tools that can be used to design APIs, understand how API design works and to mock infrastructure to test your assumptions.
We all know that a happy developer is a powerful ally.
The focus of this presentation is on the creation of APIs with the support of tools to achieve this. The goal is to create APIs that are simple for developers to understand and consume, powerful enough to be maintained by your business, in minutes rather than hours.
Presentation on GraphQL. It provides a quick introduction, explaining the what, why and how of the GraphQL capabilities. Presentation includes a working demo of GraphQL features through simple code example. Code used in the demo can be downloaded from https://github.com/ashokkumarta/graphql-samples
There are a lot of tools and processes involved in modern front-end development: Component development, design, data fetching, testing, and more. At Stripe, our team have put a lot of effort into making these things work together in a way that's more than the sum of their parts.
Demos created for public lecture for Cloud Conf Varna (23 November 2013)
Website : https://sites.google.com/a/agilemates.com/cloudconf/
Github Repo :
https://github.com/dimitardanailov/cloud-endpoints-demo
https://github.com/dimitardanailov/cloud-end-points-android-demo
https://github.com/mvelikov/GoogleEndPoints
Еднодневна конференция във Варна на тема облачен софтуер - Cloud Computing.
CloudConf Varna 2013 е първата конференция в региона на Североизточна България, посветена на облачните софтуерни решения и свързаните с тях предизвикателства. Еднодневно събитие, организирано с много ентусиазъм от IT специалисти, насочено към колеги, студенти и всички заинтересовани. Отворено и безплатно, носещо идеалната цел да подпомогне сформирането на IT общество във Варна. Заповядайте и бъдете критични!
GraphQL: The Missing Link Between Frontend and Backend DevsSashko Stubailo
Engineers working on backend data services are often focused on operational concerns like data consistency, reliability, uptime, and storage efficiency. Because each situation calls for a specific set of tradeoffs, one organization can end up with a diverse set of backend databases and services. For the people building the UI and frontend API layers, this diversity can quickly become an issue, especially if the same client needs to call into multiple backends or fetch related objects across different data sources.
GraphQL is a language-agnostic API gateway technology designed precisely to solve this mismatch between backend and frontend requirements. It provides a highly structured, yet flexible API layer that lets the client specify all of its data requirements in one GraphQL query, without needing to know about the backend services being accessed. Better yet, because of the structured, strongly typed nature of both GraphQL queries and APIs, it's possible to quickly get critical information, such as which objects and fields are accessed by which frontends, which clients will be affected by specific changes to the backend, and more.
In this talk, I'll explain what GraphQL is, what data management problems it can solve in an organization, and how you can try it today.
GraphQL is a wonderful abstraction for describing and querying data. Apollo is an ambitious project to help you build apps with GraphQL. In this talk, we'll go over how all the parts—Client, Server, Dev Tools, Codegen, and more—create an end-to-end experience for building apps on top of any data.
## Detailed description
In today's development ecosystem, there are tons of options for almost every part of your application development process: UI rendering, styling, server side rendering, build systems, type checking, databases, frontend data management, and more. However, there's one part of the stack that hasn't gotten as much love in the last decade, because it usually falls in the cracks between frontend and backend developers: Data fetching.
The most common way to load data in apps today is to use a REST API on the server and manage the data manually on the client. Whether you're using Redux, MobX, or something else, you're usually doing everything yourself—deciding when to load data, how to keep it fresh, updating the store after sending updates to the server, and more. But if you're trying to develop the best user experience for your app, all of that gets in the way; you shouldn't have to become a systems engineer to create a great frontend. The Apollo project is based on the belief that data loading doesn't have to be complicated; instead, you should be able to easily get the data you want, when you want it, and it should be managed for you just like React manages updating your UI.
Because data loading touches both the frontend and backend of your app, GraphQL and Apollo have to include many parts to fulfill that promise of being able to seamlessly connect your data together. First, we need client libraries not only for React and JavaScript, but also for native iOS and Android. Then, we must bring server-side support for GraphQL queries, mutations, and most recently subscriptions to every server technology and make those servers easier to write. And finally, we want not only all of the tools that people are used to with REST APIs, but many more thanks to all of the capabilities enabled by GraphQL.
In this talk, we'll go over all of the parts of a GraphQL-oriented app architecture, and how different GraphQL and Apollo technologies come together to solve all of the parts of data loading and management for React developers.
Case Study: Integration Automation Create Delightful API DocsPronovix
There’s more to your API docs than Curl. Sync your non-reference content. Include request examples. Generate SDK docs from the OpenAPI definition. Want to know how we did it?
Tools for designing and building great APIsKong Inc.
A review of tools that can be used to design APIs, understand how API design works and to mock infrastructure to test your assumptions.
We all know that a happy developer is a powerful ally.
The focus of this presentation is on the creation of APIs with the support of tools to achieve this. The goal is to create APIs that are simple for developers to understand and consume, powerful enough to be maintained by your business, in minutes rather than hours.
Presentation on GraphQL. It provides a quick introduction, explaining the what, why and how of the GraphQL capabilities. Presentation includes a working demo of GraphQL features through simple code example. Code used in the demo can be downloaded from https://github.com/ashokkumarta/graphql-samples
There are a lot of tools and processes involved in modern front-end development: Component development, design, data fetching, testing, and more. At Stripe, our team have put a lot of effort into making these things work together in a way that's more than the sum of their parts.
Demos created for public lecture for Cloud Conf Varna (23 November 2013)
Website : https://sites.google.com/a/agilemates.com/cloudconf/
Github Repo :
https://github.com/dimitardanailov/cloud-endpoints-demo
https://github.com/dimitardanailov/cloud-end-points-android-demo
https://github.com/mvelikov/GoogleEndPoints
Еднодневна конференция във Варна на тема облачен софтуер - Cloud Computing.
CloudConf Varna 2013 е първата конференция в региона на Североизточна България, посветена на облачните софтуерни решения и свързаните с тях предизвикателства. Еднодневно събитие, организирано с много ентусиазъм от IT специалисти, насочено към колеги, студенти и всички заинтересовани. Отворено и безплатно, носещо идеалната цел да подпомогне сформирането на IT общество във Варна. Заповядайте и бъдете критични!
Half-hour tech talk given at user groups or technical conferences to introducing developers to integrating with Google (Cloud) APIs from Python .
ABSTRACT
Want to integrate Google technologies into the web+mobile apps that you build? Google has various open source libraries & developer tools that help you do exactly that. Users who have run into roadblocks like authentication or found our APIs confusing/challenging, are welcome to come and make these non-issues moving forward. Learn how to leverage the power of Google technologies in the next apps you build!!
Apigility is a tool introduced in 2013 by Zend and the Zend Framework community, designed to handle in a simple graphical interface the configuration, management and creation of APIs, and provides classes to support API development.
This presentation is a quick but hopefully interesting introduction to this tool, aiming to demonstrate some of the most important features.
Powerful Google developer tools for immediate impact! (2023-24 A)wesley chun
This is one of two 45-60-min presentations to students or working professionals. You may know Google for search, YouTube, Android, Chrome, and Gmail, but did you know Google has many other cloud services? In this comprehensive yet still high-level overview of Google Cloud tools & APIs with the purpose of inspiring you as to what's possible. The session introduces Google's machine learning & other APIs, tools that have an immediate impact on projects, alleviating the need to think about computing infrastructure as well as dispensing with the need to have machine learning expertise. We'll wrap up w/online resources like videos & hands-on tutorials to get you started! The main takeaways are where to run your code, store your data, and analyze your data, all in the cloud!
The other version of this talk ("B") focuses more on serverless platforms.
How to build a website that works without internet using angular, service wor...Tomiwa Ademidun
In this article, you will learn the theory of how service workers work. I provide a short tutorial to apply that theory to make a website that runs without the internet. Finally, I’ll discuss what this means for you and the future of the internet.
Integrating TypeScript with popular frameworks like React or Angular.pdfMobMaxime
Do you also want to catch coding errors while in compilation early in the development process? Follow the guide below to integrate TypeScript into React or Angular.
You may know Google for search, YouTube, Android, Chrome, and Gmail, but that's only as an end-user of OUR apps. Did you know you can also integrate Google technologies into YOUR apps? We have many APIs and open source libraries that help you do that! If you have tried and found it challenging, didn't find not enough examples, run into roadblocks, got confused, or just curious about what Google APIs can offer, join us to resolve any blockers. Code samples will be in Python and/or Node.js/JavaScript. This session focuses on showing you how to access Google Cloud APIs from one of Google Cloud's compute platforms, whether serverless or otherwise.
A progressive web app (PWA) delivers an app-like experience through your mobile phone’s browser but has the same flexibility and gestures as a native application. Because they are powered by mobile browsers, they are not particular to any one device, meaning developers no longer need to write separate code for Android and Apple devices.
Logic apps and PowerApps - Integrate across your APIsSriram Hariharan
We have a number of new feature in Logic apps and PowerApps that make it easier than ever to build workflows that orchetstrate across any RESTful API. We will cover some of the latest updates to Logic apps and PowerApps.
30-45-min tech talk given at user groups or technical conferences to introducing developers to integrating with Google APIs from Python .
ABSTRACT
Want to integrate Google technologies into the web+mobile apps that you build? Google has various open source libraries & developer tools that help you do exactly that. Users who have run into roadblocks like authentication or found our APIs confusing/challenging, are welcome to come and make these non-issues moving forward. Learn how to leverage the power of Google technologies in the next apps you build!!
This book is crafted for beginner coders seeking to delve into the realm of web app development using Python, specifically focusing on deploying applications with Replit.
Whether you aim to create a profitable venture or simply desire to enhance your skills in building and deploying web applications, this guide is tailored for you.
Our web application will be a straightforward yet powerful AI writer tool aimed at helping Users get special copy for their businesses based on a big Ad Men using OpenAI's API.
Buy full book here:
https://www.amazon.com/dp/B0CSPV74XK
2. Hello World
Some introductions are in order
● If you have question, raise a hand.
● There will be dedicated Q&A time at the end of the lecture
● All source code will be provided in the form of Github link.
3. Topics Today
● What is Google App engine?
● What are RESTful APIs?
● What is Google Cloud Endpoints?
● Testing API Locally / Google API Explorer
● Generate client libraries for Android / iOS
● Consuming endpoints in your android application
● Walkthrough sample tic-tac-toe project.
● Q&A
4. Google App Engine
● Platform as a Service (PaaS)
● Easy to build and maintain.
● Easy to scale as the traffic and storage needs grow.
● Supported programming languages
○ Java
○ Python
○ PHP
○ Go
● Datastore
● Easily integrated with Google Cloud SQL
5. When to use GAE?
● You don’t want to get troubled for setting up a server.
● You want instant for-free nearly infinite scalability support.
● You don’t feel like taking care of your own server monitoring tools.
● You need pricing that fits your actual usage and isn't time-slot based (App
engine provides pay-per-drink cost model).
● You are able to chunk long tasks into 60 second pieces.
● You are able to work without direct access to local file system.
6. RESTful APIs (quick recap)
● A web service, which uses HTTP as a transport.
● Central idea: there are resources which we want to export
● Resources are sent back and forth using their representation.
● REST = representational state transfer.
● Four main operations, mapped to HTTP method:
○ GET - read or list the data
○ POST - add new data
○ PUT - update existing data
○ DELETE - as follows from the name
7. What is Google Cloud Endpoints?
● Easily create API backend.
● Simply Annotate your code.
● Automatically generate client libraries.
● Leverage App engine on Mobile.
● Authenticate end users.
○ OAuth 2.0 Support
9. Let’s see some `code`
Import messages libraries need to create
a backend API.
Then, the message classes are
defined. These messages are used to
define the requests and responses for
the API
Next, the sample defines the
API service. The API service
defines and implements the
methods that are available for
the API
10. Let’s see some `code`
This API has one methods:
● The board_get_movemethod return with a
single ‘O’ added to the board passed
in.
Finally, the sample defines the API server
which is responsible for routing requests to
an individual service.
APP = endpoints.api_server([TicTacToeApi])
11. Running and testing your backend API
In the project directory, start the development server:
~/path/to/python/sdk/google_appengine/dev_appserver.py .
When the backend is running successfully, a message similar to this one is
displayed:
INFO 2013-10-07 19:41:16,687 admin_server.py:117] Starting admin server at: http://localhost:
8000
In your browser, visit this URL:
http://localhost:8080/_ah/api/explorer
12. API Explorer
A. Click tictactoe to display the available methods.
B. Click tictactoe.board.getmove to display the
Explorer form for it.
C. Select state from Request body and enter current
state of tic-tac-toe board e.g., “X--------”
D. Execute in order to get next “O” move.
E. Notice the display of the request and response. In the
Response, you'll see the OK result and the returned
message, “XO-------”.
13. Generate Client Libraries
Invoke the Endpoints command line tool as follows:
google_appengine/endpointscfg.py get_client_lib java -bs desired_client_bundle your_module.
YourServiceClass
Using a more concrete example to generate the client library:
google_appengine/endpointscfg.py get_client_lib java -bs gradle tictactoe_api.TicTacToeApi
When successful, the tool displays a message similar to:
API client library written to ./tictactoe-v1.zip
14. Consuming endpoints in your android app
To add the client library to the Android project:
● Add a /libs directory to your project if it doesn't already have one. It should
be a peer to the /src directory.
● Copy the client library generated from the backend API into /libs.
● Select the library you just added, right-click, then select Add As Library to
your project.
15. Let’s integrate...
Creating the service object
In your project code, you must use a service
object to make requests to the backend API.
For unauthenticated requests, construct the
service object as follows:
Calling the backend API
In your project, call the API using the service
object.
In the snippet, we are requesting a list of all
Score objects on the server. If list required
parameters, or a request body, you would
provide them in the invocation. Android Studio
provides code completion to identity available
method calls, and their required parameters.
16. Let’s integrate...
Note: It is important to note that because
API calls result in requests over the
network, you are required to make
requests in their own thread. (This
requirement was added to recent versions
of Android, but it is a best practice even in
older versions.)
To do this, you use a Thread or
AsyncTask. For example: