Google Cloud Endpoints is now Generally Available
In a multi-platform, multi-client and multi-screen world, it's often important to think about building APIs first and using a shared backend to connect to client applications later. At Google, we have a history of providing APIs for products such as Maps, Translate and Gmail, which have led to the creation of new applications that are used by millions of users.
But we know that building an API for your own clients isn't easy. Scaling, authentication and tooling are all issues that need to be addressed. Google Cloud Endpoints provides developers with a simple way to create, expose and consume APIs served from App Engine.
Cloud Endpoints simplifies multi-client access to a shared Google App Engine backend |
Blossom.io, a project management tool, built their product using App Engine and Cloud Endpoints. Here is what their CEO, Thomas Schranz, had to say:
“Cloud Endpoints certainly has enabled us to offer an API that is on par with the best APIs out there. It has enabled us to build an API that feels and behaves like APIs from YouTube, Google Maps and other Google services...We would never have been able to offer something comparable in the same amount of time. Building all of that without Google Cloud Endpoints would have been unthinkable.”
Server Side Annotation Language
For backend developers, simple annotations turn native Java and Python code into APIs that can be easily deployed and consumed by Android, iOS and web clients. Deployed APIs gain the resilience and scalability that other Google APIs have with features like DoS protection, OAuth support and client key management.
package guestbook;
import javax.inject.Named;
import com.google.api.server.spi.config.Api;
@Api
public class GreetingsEndpoint {
public Greeting getGreeting(@Named("id") Integer id) {
return createGreeting(id);
}
public Greeting[] listGreetings() {
Greeting[] greetings = new Greeting[] {
createGreeting(1),
createGreeting(2)
};
return greetings;
}
private Greeting createGreeting(Integer id) {
Greeting greeting = new Greeting();
greeting.setMessage("Hello " + id);
return greeting;
}
}
Client Side Development
Client developers on Android, iOS and web can use automatically generated client libraries that make API access simple and natural. Cloud Endpoints libraries take a lot of the complexity away by handling marshaling and unmarshaling, authentication and key verification. Furthermore, Android Studio offers great support for consuming Cloud Endpoints.
Automatic strongly-typed client library generation in Android Studio to simplify API consumption |
Mobile Backend Starter Update
If you would rather focus on your client application, Mobile Backend Starter (MBS) is a one-click deployable, complete mobile backend built on Cloud Endpoints. MBS provides a ready-to-use, cloud backend and client-side framework for Android and iOS. We have distilled the best practices from hundreds of successful mobile backends on App Engine to give developers a turnkey solution that requires no server side development.
MBS includes a server that stores your data with App Engine and a client library and sample app for Android and iOS that make it easy to access that data. You can also use the built-in support for Google Cloud Messaging (GCM) for Android, Apple Push Notifications (APN) for iOS and continuous queries to notify your app of events you are interested in. In addition, MBS includes built-in support for Google Authentication to keep user data secure.
The new version of MBS includes:
- Handling Large Media Files: Many mobile applications let users view and upload videos and high resolution images. But storing and serving this content can be cumbersome. Google Cloud Storage offers high durability and availability at low cost. MBS now allows you to easily manage user-isolated and secure access to data in Cloud Storage directly from your iOS or Android application, with no server coding required.
Imagine that you are building an expense reporting mobile app and you want to allow your users to upload pictures of their receipts. This is very straightforward. Your Android or iOS app can obtain a secure upload URL that only your application can use and then use standard client libraries to stream bytes to Google Cloud Storage. In this snippet of code for Android notice that in this case the uploaded file will be available only to the user who uploaded it.// get a secure URL for uploading a private file
URL url = blobEndpoint.getUploadUrl("receipts",
getReceiptFileName(),"PRIVATE")
.execute().getShortLivedUrl());
Downloading images and other files is also easy. You start with obtaining a secure download URL and then you can use standard client libraries to download bytes from Google Cloud Storage. MBS will authenticate the caller and check if it is allowed to download the file.// get a secure URL for downloading a file
URL url = blobEndpoint.getDownloadUrl("receipts",
getReceiptFileName())
.execute().getShortLivedUrl()); - Updated Mobile Clients: We have updated the template mobile clients as well. Both Android and iOS display an updated user interface and incorporate best practices. The Android client sports the newest version of Google Cloud Messaging.
So whether your mobile project demands rolling your own backend with Cloud Endpoints or you are able to start a ready-made backend of MBS, the Google Cloud Platform just got better for you. Get started with Cloud Endpoints or Mobile Backend Starter today!
-Posted by Tzachi Ben-Ayoun, Product Manager
0 comments:
Post a Comment