2012-10-02 6 views
13

Ich versuche eine Web-App mit ExpressJS und Coffeescript zu erstellen, die Daten von Amazon, LastFM und Bings Web-APIs bezieht.
Benutzer können Daten wie die Preise für ein bestimmtes Album von einer bestimmten Band, kommende Konzertzeiten und Orte für eine Band usw. anfordern.Sollte ich API-Anfragen Server-Seite oder Client-Seite tun?

Meine Frage ist: sollte ich diese API-Aufrufe Client-Seite mit jQuery und getJSON oder sollten sie Server-Seite sein? Ich habe clientseitige Anfragen gestellt; Wie würde ich sogar einen API-Aufruf von der Server-Seite machen?
Ich möchte nur wissen, was die beste Praxis ist, und auch, wenn jemand mich in die richtige Richtung für serverseitige API-Anfragen zeigen könnte, wäre das sehr hilfreich.

Danke!

Antwort

2

Es ist oft gut zu abstrahieren Ihre Lagerung und abhängige Dienste Änderungen zu isolieren und einen konsolidierten und konsistenten Web-api für Ihre Anwendung anbieten . Aber manchmal, wenn Sie eine gute Hypermedia Web API (RESTful Antworten Link zu anderen Ressourcen) haben, könnten Sie eine Ressource Link von einem anderen Dienst in der Antwort von Ihrem Dienst verweisen (z. B .: SO Anfrage könnte gravatar Bild/Ressource des Benutzers). Es gibt keine Einheitsgröße für alle - es hängt davon ab, ob Sie die Abhängigkeit kapseln oder integrieren wollen.

Es kann von Vorteil sein, die Web-API-Anfragen von Ihrem Dienst über expressjs als Ihre eigene Web-API verfügbar zu machen.

Making http Web-API-Anforderungen ist einfach von Knoten. Hier ist so ein weiterer Posten, dass Abdeckung:

HTTP GET Request in Node.js Express

+0

Vielen Dank für den Link. Ich werde es versuchen. Kann ich auch fragen, wo Sie dieses getJSON-Modul in die Struktur Ihrer App gesteckt haben? Sagen wir, ich werde die Ergebnisse des Anrufs nicht in meiner Datenbank speichern. – aeyang

+0

In Ihrem anderen Beitrag haben Sie auch erwähnt, dass Sie eine vollständigere Stichprobe haben. Ist das Angebot immer noch gut? – aeyang

+0

Sicher, zum Herumspielen und eine Präsentation habe ich einen Studenten-Rest-Service geschrieben, der mit Parse.com mit http-Anfragen nach Speicher sprach: https: // github.com/bryanmacfarlane/nodefun/tree/master/express/helloworld/service – bryanmac

1

gut, die Art, wie Sie es beschreiben Ich denke, dass Sie Daten von Amazon, Lastfm usw. abrufen möchten, verarbeiten Sie es mit Knoten, speichern Sie es in Ihrer Datenbank und bieten Sie Ihre eigene API.

Sie Knotens verwenden können http.request(), um die Daten zu holen und Ihren eigenen Rest api bauen mit express.js

6

Es gibt zwei wichtige Überlegungen für diese Frage:

  1. Sie Anrufe entstehen jeden Datenzugriff? Werden die Ergebnisse einfach auf den Bildschirm geschrieben?
  2. Wie & wo planen Sie Fehler zu behandeln? Wie gehst du mit Throttling um?

Punkt # 2 ist wirklich wichtig hier, weil Web-Services die ganze Zeit für eine ganze Reihe von Gründen abstürzen. Ihre Anrufe nach Bing, Amazon & Letzte FM wird voraussichtlich 1% oder 0,1% der Zeit (basierend auf meinen Erfahrungen hier) scheitern.

Um Anfragen Benutzer serverseitige JS zu machen, wollen Sie wahrscheinlich einen Blick auf die Requestpackage on NPM werfen.

+0

Danke für den Link. Die beiden Antworten unter Ihnen haben beide "http.request" erwähnt. Ich wundere mich, wie das 'Request' npm-Paket anders ist? Ist es einfacher zu benutzen? – aeyang

+0

Die 'http.request' Bibliothek ist sehr Low-Level-Zugriff. Die 'Request'-Bibliothek in NPM unterstützt Dinge wie OAuth, Cookies, Streaming und Formulareinreichungen. Wenn Sie versuchen, Anrufe an Dritte weiterzugeben, benötigen Sie dieses Tool. –

+0

Vielen Dank. Ich werde es definitiv versuchen! – aeyang

Verwandte Themen