2009-06-18 11 views
81

Vorrei creare un'app RESTful su Google App Engine. Vorrei fornire servizi XML e JSON. Ho brevemente sperimentato con Restlet, Resteasy e Jersey. Non ho avuto molto successo con nessuno di loro, a parte alcuni semplici esempi in Restlet.Applicazione RESTful su Google App Engine Java?

Potresti condividere le tue esperienze creando un'applicazione Web riposante su Google App Engine utilizzando Java o fornisci informazioni sugli strumenti di cui sopra su GAE?

Grazie!

Edit (2009-07-25):

ho deciso di utilizzare Restlet per il momento. Sembra funzionare perfettamente fino ad ora. Si prega di postare eventuali altri approfondimenti/opinioni che si possono avere. Quali problemi hai incontrato? Hai utilizzato con successo Jersey/Restlet/Resteasy su GAE/J? Se è così, vogliamo sentirne parlare!

+0

http://technicalrex.com/2014/08/11/creating-a-jersey-app-on-google-app-engine/ e http://www.javacodegeeks.com/2012/05/google-app-engine-j ax-rs-rest-service.html sono i migliori turorial sull'integrazione GAE di Jersey. –

+0

È una questione di scelta del framework a cui siamo abituati nel nostro sviluppo, ho utilizzato Spring MVC con oggettivazione e Hibernate e funziona anche in modo impeccabile su Google App Engine. –

+0

@AnkurJain si, molti cambiamenti in 7 anni. –

risposta

42

Sono felice di segnalare che il Restlet M3 funziona SENZA FLUSTI su AppEngine 1.2.2. Ho seguito i tutorial "Primi passi" e "Prima risorsa" trovati http://restlet.com/technical-resources/restlet-framework/guide.

Quindi, mi sembra che Restlet sia la risposta per le vostre applicazioni GAE/J Restful.

+4

Il link sopra è ora rotto. Il link relativo a GAE per Restlet 2.2 è http://restlet.org/learn/guide/2.2/editions/gae –

-1

Le 2 azioni API REST GAE più ingombranti per rendere il lavoro, sia Java che .py, sono grafici e come visualizzare informazioni private non visualizzate. My little gae resto feed biforcuto progetto another. Sono sicuro che Java riesce dove Python si blocca a causa del Java prende e dà più modi (vantaggi) e più lungo (più lento) tempo per avere successo (svantaggio) mentre i progetti python apre meno modi per avere successo (svantaggioso) e meno tempo di sviluppo (vantaggioso sviluppo rapido) per avere successo allo stesso.

2

Per quello che vale, c'è stato un bel po 'di discussione su Jersey user lists su come far funzionare Jersey su GAE. È un lavoro un po 'noioso a causa delle restrizioni del GAE (classi mancanti da liste bianche - si spera risolte nel tempo), ma a quanto pare può essere fatto funzionare. Quindi, anche se non banalmente facile, potrebbe essere la soluzione migliore; esp. poiché molti dei problemi affrontati sono gli stessi per tutti i framework (imposti da GAE).

+0

Vorrei chiederti se hai qualche soluzione alla mia domanda qui http://stackoverflow.com/questions/32699420/url-parameters-are-not-being-passed-by-curl-post grazie –

6

Ho intenzione di iniziare a esplorare anche questo, ma non ho ancora iniziato. Ho trovato questo framework, che dice che dovrebbe funzionare, ma come ho detto non l'ho ancora provato.

http://wiki.restlet.org/docs_1.2/13-restlet/275-restlet/252-restlet.html

Se ti capita di lavoro, o il gestore di ottenere uno dei suggerimenti di cui sopra di lavoro, aggiornare tutti come sono sicuro che ci sia interesse per questo.

+1

I ' Sono abbastanza sicuro che Restlet funzionerà. È solo un po 'più cattivo da usare rispetto agli altri. Mi piacciono particolarmente le annotazioni presentate da Jersey. Ho intenzione di utilizzare Restlet entro le prossime due settimane. Sarò sicuro di pubblicare un aggiornamento. –

+0

Ho passato il weekend a giocare con questo, e Restlet funziona alla grande su GAE. Sono stato in grado di mettere insieme qualcosa seguendo l'esempio dato sul sito di Restlet all'URL che avevo lasciato in precedenza che ora è inattivo. Ma è stato banale impostare tutto. – broschb

+0

Ho scritto un piccolo post sul mio blog per rispondere ad un'altra domanda su StackOverflow. Passa attraverso un esempio molto semplice di ottenere il restlet andando su GAE. http://broschb.blogspot.com/2009/08/restful-service-on-google-app-engine.html – broschb

3

Beh, altamente consiglio di dare un'occhiata a play framework

Dai un'occhiata al video sulla homepage

Ha un gae module

Con siena come orm per gestire gae datastore

Da tutti i framework Java che ho visto finora, penso che abbia la curva di apprendimento più facile,

  • grande documentation,

  • un tutorial per sviluppare un'applicazione completa

  • molto attivo e disponibile comunità ,

  • free as in beer e anche come nel discorso

  • altamente scalabile grazie alla sua senza stato fuori dal disegno della scatola

  • rest friendly

  • altamente personalizzabile tramite suoi moduli e plugin di approccio

più sopra, tenendo conto che si tratti di un corso universitario , è davvero facile incidere il codice, potrei gestire un paio di biglietti e nuove funzionalità senza alcuna esperienza con java, solo un paio di anni sviluppando applicazioni web con php

altri benefici

  • è davvero facile per iniziare, alcuna installazione complicata coinvolti, basta scaricare e decomprimere il file e si è pronti

  • grande esperienza di sviluppo, basta correggere il codice e ha colpito di aggiornamento, il gioco autocompiles modifiche al volo durante l'esecuzione in modalità di sviluppo

  • veloce e leggero

  • fullstack, non c'è bisogno di integrare c quadri umbersome Per farlo funzionare

  • grande rapporto di errori, non di più infinita traccia stack errori, solo che mostra la linea con l'errore

  • alcuna configurazione XML ovunque intorno

  • grande supporto per TDD con il selenio test integrato

credo che il vantaggio principale come strumento di apprendimento, è che è possibile sbirciare nel codice sorgente senza sentirsi persi e il sostegno della comunità ...La documentazione è molto chiara e puoi imparare molto semplicemente dando un'occhiata al codice sorgente ...

+0

. La riproduzione sembra molto impressionante. Tuttavia, la sua integrazione con GAE non sembra essere mantenuta all'interno del progetto principale e quindi è in ritardo rispetto al ciclo di rilascio di GAE. Il suo plugin GWT sembra essere ancora più lento. Nondimeno, ti darò un upvote per avermi mostrato un progetto così interessante. –

+0

il modulo gae è stato sviluppato ed è mantenuto dallo sviluppatore principale, il modulo siena (consigliato orm per gae, jpa ha molti problemi) è mantenuto da un membro molto attivo della comunità, sfortunatamente il modulo gwt non riceve molta attenzione in atto ... il modulo gae – opensas

+0

è tornato in pista! un altro sviluppatore ne ha preso il controllo, ecco il supporto per gae 1.6 http://www.playframework.org/modules/gae-1.6.0/home – opensas

2

Recentemente ho creato un modello di progetto con Jersey, Guice and AppEngine su GitHub. È stato sviluppato con SimpleDS, ma può essere modificato per funzionare facilmente con Objectify/JDO. Il progetto è in diretta here.

Dovrebbe essere un buon punto di partenza per nuovi progetti.

1

Ecco un tutorial molto completo di Restlet/Android/GAE/Objectify con un esempio di una semplice applicazione. Spiacente, è in francese, ma puoi giustificare il copia/incolla del codice o utilizzare google traduction.

L'ho seguito e ho avuto un server Android/GAE funzionante che comunicava insieme in 2 ore. È una buona base per iniziare o testare Restlet.

http://www.tutos-android.com/webservice-rest-android-appengine-restlet-objectify

Good Luck

3

Dal momento che questi ardito soluzioni più anziani sono stati patchati insieme, Google ha apparentemente fornito un plugin Eclipse per creare un progetto di avviamento che produce un app App Engine, un APK Android, e un Web app, che parlano tra loro su un'interfaccia definita da un singolo insieme di dichiarazioni di oggetti annotati.

non hanno ancora provato io stesso, ma hanno uno sguardo prima di provare qualsiasi degli esempi più eterogenei descritti nei messaggi precedenti di cui sopra:

https://developers.google.com/eclipse/docs/appengine_connected_android

Questo video Google è anche abbastanza informativo:

http://www.youtube.com/watch?v=NU_wNR_UUn4