Desidero scrivere un'applicazione desktop che interagisca con un servizio Web basato su GAE. Per i client Android e Web esiste la possibilità di generare automaticamente librerie client. C'è un modo per generare librerie client per C o C++? Mi accontenterei anche di Python.Posso utilizzare GAE Cloud Endpoint da un'applicazione desktop?
risposta
Teoricamente tutte le API di Google Le librerie client consentono di accedere a qualsiasi API basata su Discovery purché il documento di individuazione sia disponibile (come nel caso degli endpoint cloud) anche se la funzionalità non è molto ben documentata nella maggior parte dei casi.
Vedere https://developers.google.com/discovery/libraries per un elenco di librerie client attualmente disponibili.
Come esempio di come è possibile utilizzare il python client library con endpoint di cloud:
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()
Attualmente, Google App Engine Cloud Endpoint supporta solo la generazione di librerie client per Android (Java), iOS (Objective-C) e JavaScript. Vedi https://developers.google.com/appengine/docs/java/endpoints/overview.
Naturalmente puoi ancora sviluppare la tua applicazione utilizzando GAE per il tuo servizio web e scrivere le librerie dell'interfaccia del servizio web in qualsiasi lingua tu scelga.
la maggior parte dei generatori può consumare un documento di individuazione arbitraria come scarygami menziona. Quelli che menzioni esplicitamente sono davvero in riferimento a ciò che è documentato per funzionare, ma il resto funzionerà probabilmente bene. – bossylobster
Grazie, non ero a conoscenza dei dettagli dell'implementazione degli endpoint cloud. Questa è un'informazione utile sui documenti di scoperta. –
Grazie! Questo e 'esattamente quello che stavo cercando. –
Solo un piccolo followup: I metodi che sono annotati con 'http_method = 'POST'' sono chiamati leggermente diverso, perché si aspettano i loro argomenti in' body' come questo: 'service.some_method (corpo = { 'param_foo': 42,' param_bar ': "zoo"}). execute() ' –