I want to write a desktop application that interacts with a GAE-based web service. For Android and Web clients there is the possibility to generate client libraries automatically. Is there a way to generate client libraries for C or C++? I would settle for Python as well.
Theoretically all the Google APIs Client libraries allow accessing any Discovery-based API as long as the discovery document is available (which is the case for cloud endpoints) even though the functionality isn't very well documented in most cases.
See https://developers.google.com/discovery/libraries for a list of currently available client libraries.
As example of how you can use the python client library with cloud endpoints:
service = build("your_api", "your_api_version", http=http,
discoveryServiceUrl=("https://yourapp.appspot.com/_ah/api/discovery/v1/"
"apis/{api}/{apiVersion}/rest"))
result = service.resource().method([parameters]).execute()
Currently, Google App Engine Cloud Endpoints only supports generating client libraries for Android (Java), iOS (Objective-C) and JavaScript. See https://developers.google.com/appengine/docs/java/endpoints/overview.
Of course you may still develop your application using GAE for your web service and write the web service interface libraries yourself in any language you choose.
Related
How do they differ? and what is the use case for each?
Is it possible for me to use one exclusively, such as if I'm more familiar with .NET I could do everything using the Client Library (for .NET) that I could with python and the SDK?
Google Cloud SDK https://cloud.google.com/sdk/docs/
Google Cloud Client Libraries https://cloud.google.com/apis/docs/cloud-client-libraries
The Cloud SDK is a set of command line tools (gcloud, gsutil, and bq). The use of the term 'SDK' here seems to be misleading and they should probably be called Google Cloud Tools or Google Cloud CLI.
The Cloud Client Libraries are the latest set of libraries available in various languages that you can program against.
There's also an older set of client libraries called the Google API Client Libraries. They're autogenerated from Google service interfaces and are simple wrappers to REST calls. You should probably use the newer Cloud Client Libraries if you can as they are more idiomatic and provide better abstraction.
Jarmod's answer is excellent.
Could I do everything using the Client Library (for .NET) that I could
with python and the SDK?
Almost everything. Exceptions I know:
.NET code can't run on good ole Google App Engine Standard. You can still run your .NET code in Google Compute Engine (on Windows) or Google App Engine Flexible Environment (.NET core code on Linux.)
Tensorflow only has a Python API.
Bigtable doesn't have a .NET API.
https://github.com/GoogleCloudPlatform/dotnet-docs-samples shows how to call many, but not all of the Google Cloud APIs.
I managed to get Google Cloud Messaging working on an embedded device using libcurl using http requests and a 'BrowserKey' for authentication.
Now i would like to move to Google Cloud Datastore for saving settings of the embedded device into the cloud. There seems to be support for Java, Ruby, Python, NodeJS but so far I found nothing that could help me further using things i know.
Can I get access to the Cloud Datastore from my existing application written in plain C ?
While we don't have client libraries for C, we do have a RESTful API (documentation) that you can call, so it should be possible to write your own simple library in C to talk to Cloud Datastore from an embedded device.
If you are concerned about security (since someone could possibly impersonate your embedded device and get direct access to your Cloud Datastore instance, I recommend you take a look at Cloud Endpoints (documentation). It gives you an easy way to generate a RESTful API on top of App Engine. You could then use your custom API in the embedded device and use App Engine as a proxy/data validation layer that controls access to the database.
I m new to appengine development.I have a few basic question about web client for appengine.When we make a google cloud module in Android Studio, an android client, a back end and a WEB CLIENT is auto-generated.A few files are auto-generated for web interface. My questions are:
why do I need WEB-INF/web.xml for web client? I also found there's a servlet api dependency added in gradle, though I didnt find and servlet file, what is it used for ?
I want to make a web interface/client for my andorid app, but I dont
know servlet,jsp, can I make it with pure javascript or js lib?
Will the default template for web client work from any other web-hosting
than appengine?
How can I make a web client with pure javascript,css,html, will the
google cloud doc for javascript suffice for this purpose?
why do I need WEB-INF/web.xml for web client? I also found there's a
servlet api dependency added in gradle, though I didnt find and
servlet file, what is it used for ?
Both are base elements for Java web applications even though you are not using servlets most modern web frameworks are built on top of them.
I want to make a web interface/client for my andorid app, but I dont
know servlet,jsp, can I make it with pure javascript or js lib?
Yes, GAE are standard web applications so you can build and app using pure HTML + js.
Will the default template for web client work from any other
web-hosting than appengine?
short answer, no. The App engine SDK depends on several APIs available strictly on the GAE environment. Shouldn't be hard to get an empty webapp template working on a tomcat thought.
How can I make a web client with pure javascript,css,html, will the
google cloud doc for javascript suffice for this purpose?
I dont know exactly what you mean by "the Google cloud Doc" but mostly the answer is yes, all App Engine, Cloud Compute and Google Drive are capable of hosting HTML+JS.
I have been developing a Phonegap client application, I need to create a web service that storage all the data that i will be sending through the app.
I want to use google app engine to create the database and the web service.
I have read a lot, but i don't find a concrete example of how to do it and how to call the web service then from the application with phonegap.
Anyone have an example of how to do this?
You can use Cloud Endpoints with your app:
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. Endpoints makes it easier to
create a web backend for web clients and mobile clients such as
Android or Apple's iOS.
For mobile developers, 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. Furthermore, because the API backend is an App
Engine app, the mobile developer can use all of the services and
features available in App Engine, such as Datastore, Google Cloud
Storage, Mail, Url Fetch, Task Queues, and so forth. And finally, by
using App Engine for the backend, developers are freed from system
admin work, load balancing, scaling, and server maintenance.
It is possible to create mobile clients for App Engine backends
without Endpoints. However, using Endpoints makes this process easier
because it frees you from having to write wrappers to handle
communication with App Engine. The client libraries generated by
Endpoints allow you to simply make direct API calls.
Available in Python | Java
we have done similar thing for our Cordova/ionic based application. Its very simple and straight forward using javascript client of google cloud endpoint.
I'm making a cloud system and I want to integrate some open source APIs like Writer,Image Viewer etc..
I'm using GWT framework and Google App Engine as a host server
I know that my Apis must be in Python or Java which Google app Engine platform support so I searched for one of them and found API called
Zoho Writer
If what you're looking for is access to Google's public APIs, and you're using Eclipse with Google Plugin for Eclipse, then you have a button that brings up a list of all Google APIs that have GWT interfaces, and allows you to install the client library for each.
See here: https://developers.google.com/eclipse/docs/googleapis