Qual è la migliore tecnologia per un VERAMENTE portatile REST client

3

Sviluppo una suite di strumenti di produttività, per Mac, iOS e Windows. Tutti comunicano con un server di sincronizzazione tramite un'interfaccia RESTful (usando i protocol buffer), ma quando aggiungiamo nuove piattaforme, ci rendiamo conto che è difficile ricreare diverse versioni dello stesso codice solo per comunicare con il client, quindi abbiamo pensato di utilizzando un design modulare:

  • Il modulo del client di backend sarebbe lo stesso per tutti i client, in modo che le modifiche al protocollo possano essere facilmente trasferite a tutti i client
  • Clienti che dobbiamo supportare: Windows, Mac, iOS, Android, Web, possibilmente Windows Mobile

L'unico modo che posso pensare è tramite un modulo JavaScript che è condiviso tra tutti i client e gestisce le comunicazioni con il server, ma forse è ancora più lavoro a causa dell'integrazione richiesta con l'interprete JavaScript. Forse potremmo stare meglio scrivendo un paio di moduli di backend invece di uno solo.

    
posta Pablo Diaz 22.02.2012 - 07:43
fonte

2 risposte

3

Se vuoi dire, scrivi il codice una volta e fallo girare su "Windows, Mac, iOS, Android, Web, possibilmente Windows Mobile": non penso che sia pratico. Avrai bisogno di mantenere diversi clienti diversi.

Ma ci sono cose che puoi fare per renderlo meno incline agli errori. È necessario iniziare con una definizione rigorosa e precisa di ciò che gli input e gli output del server possono essere, quindi assicurarsi che ognuna delle librerie obbedisca a tale definizione. Esistono strumenti in grado di generare automaticamente codice client e / o server da un documento WADL o WSDL; quelli potrebbero essere utili. Per lo meno, avrai bisogno di un framework di test unitario che esegua tutti i client con gli stessi dati di input e si assicuri che generino lo stesso output.

    
risposta data 22.02.2012 - 17:22
fonte
1

Se vuoi che funzioni in un browser, sarebbe piuttosto facile farlo. Backbone.js, ExtJS (e probabilmente molti altri JS Framework) lo faranno senza molti problemi. Tutto quello che dovrai fare è impostare alcuni oggetti e indirizzarli all'URL corretto

    
risposta data 22.02.2012 - 08:59
fonte

Leggi altre domande sui tag