Qual è il modo più efficiente per implementare un'app client RESTful?

5

Sto lavorando a un'applicazione web per classificare alcuni prodotti sulla base di alcuni fattori.

L'utente invia una query di ricerca a 5 restful webservices che a loro volta inviano una risposta in un formato JSON e talvolta in un formato XML (le risposte non sono strutturate allo stesso modo, poiché i servizi web sono differenti t). Ho scelto di riformattare tutto in una speciale struttura JSON, così posso usarlo.

Il mio problema attuale è che non so da che parte dovrei implementare questa app, che è fondamentalmente un client REST che interferisce con altri servizi web.

The Server Approach:

Il primo modo che avevo in mente è usare un'implementazione lato server (usando python e flask) per inviare una richiesta HTTP e ricevere una risposta, "ReEncode" tutto in un formato json strutturato e rimandalo al client che lo renderà.

Ecco i passi di cose che dovrebbero funzionare utilizzando questo approccio:

  1. Il client invia una richiesta al mio server contenente la query di ricerca
  2. Il mio server riformatta la richiesta per creare una richiesta HTTP per ogni servizio web
  3. Il server invia la richiesta a questi servizi RESTful e recupera una risposta HTTP da ciascun server.
  4. Il server decodifica le risposte a una speciale struttura dati che ho creato, quindi applica tutte le regole di classificazione e elaborazione ad esso.
  5. Il server ricodifica tutto in formato json e lo rimanda ai client.
  6. Il browser del client ripete e rende la risposta json!

Approccio lato client:

Il secondo modo per creare questa app è fare tutte le comunicazioni HTTP, l'elaborazione dei dati, l'analisi e il rendering su un lato client, certo che qui non c'è davvero lato client, dal momento che l'app dovrà comunicare con i servizi web.

I passaggi per questo approccio sono i seguenti:

  1. Il client digita le parole chiave di ricerca (la query di ricerca)
  2. I client browser creano una richiesta http (utilizzando la query di ricerca e le chiavi API) e la inviano direttamente ai servizi Web.
  3. Il browser client decodifica la risposta (json / xml formattato) e crea oggetti nativi che ho bisogno di usare.
  4. Elabora i dati decodificati (classifica, filtro ...)
  5. Ricodifica tutto in un formato JSON strutturato
  6. Render tutto.

Questo approccio utilizzerà solo JS e alcuni framework.

La domanda : In che modo è più efficiente e rapida da configurare?

Cose da considerare:

  • Ho una conoscenza limitata di python e js.
  • Questo è un progetto part-time.
  • Devo terminarlo in meno di un mese.
  • Questa è la mia prima applicazione web (ma non il mio primo progetto di programmazione, ho creato software e giochi prima)
posta DeltaWeb 21.12.2015 - 23:21
fonte

1 risposta

1

L'approccio lato client avrà il minor tempo di sviluppo, perché è necessario sviluppare solo un livello (il client). Se si seguisse l'approccio lato server, si dovrebbe sviluppare il client e il server. Forse il numero di linee di codice non sarebbe molto diverso, ma con l'approccio client-side dovrai solo gestire un programma e un linguaggio di programmazione. Il debugging sarà più semplice, anche perché esiste un solo thread.

Se ti capisco correttamente, non ti preoccupi dell'impatto a lungo termine della tua scelta, quindi non lo considero nella mia risposta.

    
risposta data 31.12.2015 - 10:59
fonte

Leggi altre domande sui tag