2012-10-02 15 views
13

Sto provando a creare un'app Web utilizzando ExpressJS e Coffeescript che estrae i dati da Amazon, LastFM e le API Web di Bing.
Gli utenti possono richiedere dati come i prezzi per un determinato album da una specifica band, i prossimi concerti e le location per una band, ecc ... cose del genere.Devo fare richieste API lato server o lato client?

La mia domanda è: devo fare queste chiamate API lato client usando jQuery e getJSON o dovrebbero essere lato server? Ho fatto richieste sul lato client; come farei anche una chiamata API dal lato server?
Voglio solo sapere qual è la migliore pratica, e anche se qualcuno potrebbe indicarmi la giusta direzione per fare richieste API lato server, sarebbe molto utile.

Grazie!

risposta

2

Spesso è bene astrarre storage e servizi dipendenti per isolare i cambiamenti e offrono un'API web consolidata e coerente per la vostra applicazione . Ma a volte, se si dispone di una buona hypermedia web api (le risposte RESTful si collegano ad altre risorse), è possibile fare riferimento a un collegamento risorsa da un altro servizio nella risposta dal proprio servizio (es: richiesta SO può fare riferimento a immagine/risorsa utente gravatar). Non esiste una taglia adatta a tutti: dipende da se si desidera incapsulare la dipendenza o integrare con essa.

Potrebbe essere utile fare in modo che le richieste di Web-API del servizio vengano esposte tramite expressjs come proprie web-apis.

Fare richieste HTTP web-api è facile dal nodo. Ecco un altro SO post riguardante che:

HTTP GET Request in Node.js Express

+0

Grazie per il collegamento. Darò una prova. Posso anche chiedere, dove hai messo questo modulo getJSON nella struttura della tua app? Diciamo che non memorizzerò i risultati della chiamata sul mio DB. – aeyang

+0

Inoltre, nel tuo altro post hai menzionato che avevi un campione più completo. Questa offerta è ancora valida? – aeyang

+0

Certo, per giocare in giro e una presentazione ho scritto un servizio di riposo per studenti che ha parlato con Parse.com con richieste http per l'archiviazione: https: // github.com/bryanmacfarlane/nodefun/tree/master/express/helloworld/service – bryanmac

1

beh, il modo in cui lo descrivi penso che potresti voler recuperare i dati da Amazon, LastFm e così via, elaborarli con il nodo, salvarlo nel tuo database e fornire la tua API personale.

è possibile utilizzare il nodo di http.request() per recuperare i dati e costruire il proprio API REST con express.js

6

C'è vengono due considerazioni chiave per questa domanda:

  1. Fare chiamate di sostenere alcun accesso ai dati? I risultati verranno scritti sullo schermo?
  2. Come & dove pensi di gestire gli errori? Come gestisci il throttling?

L'articolo n. 2 è molto importante qui perché i servizi Web scendono sempre per una serie di motivi. Le tue chiamate a Bing, Amazon & L'ultima FM avrà esito negativo probabilmente l'1% o lo 0,1% delle volte (in base alle mie esperienze qui).

Per fare richieste agli utenti sul lato server JS probabilmente si vuole dare un'occhiata allo Requestpackage on NPM.

+0

Grazie per il link. Le due risposte sotto la tua hanno entrambi citato 'http.request'. Mi chiedo come sia differente il pacchetto 'Request' npm? È più semplice da usare? – aeyang

+0

La libreria 'http.request' è un accesso a basso livello. La libreria 'Request' in NPM supporta supporti come OAuth, cookie, streaming e invio di moduli. Se stai provando a chiamare proxy a terze parti, vorrai questo strumento. –

+0

Grazie. Lo sto sicuramente provando! – aeyang

Problemi correlati