2017-05-28 3 views
-1

machen Ich habe eine Frage darüber, wie die APIs auf meiner Website arbeiten. Ich möchte, dass meine Website funktioniert. Also habe ich derzeit eine Website, die eine API-Anfrage von einer JavaScript-Datei ausführt und dann diese JS-Datei lädt die Daten in die HTML. Meine Frage ist, wenn meine Benutzer zu der Website navigieren, jedes ihrer Geräte einen API-Anruf tätigt, oder wird es einmal auf dem Server gemacht? Ich möchte für den Anruf eine einmalige Zeit auf dem Server gemacht werden und dort gespeichert werden. Wenn dann jemand zu meiner Site navigiert, fordert sein Gerät nur die Daten von dem Server an, auf dem die Daten gespeichert sind. (Ich möchte andere APIs verwenden, die ein sehr niedriges Anruflimit haben, weshalb ich einen Weg finden soll, dies zu tun.) Und dies vorzugsweise nur mit JavaScript erreichen.Eine serverseitige API Call

Antwort

1

Basierend auf Ihrer Beschreibung Ihrer Website:

Ja. Jedes Mal, wenn ein Benutzer Ihre Website lädt, wird JavaScript ausgeführt und ruft Ihre API auf, um die Daten abzurufen.

Wenn Sie Daten von Drittanbieter-APIs abrufen, werden diese immer noch bei jedem Zugriff eines Benutzers auf Ihre Site aufgerufen, obwohl Ihr Server die Anforderung möglicherweise ausführt (abhängig von Ihrer Implementierung).

Wenn Sie Ihre API-Aufrufe einschränken möchten, sollten Sie eine Kopie der API-Antwort in einer Datenbank (oder sogar in einer Textdatei, abhängig von der Größe) speichern/zwischenspeichern. Ihr Server würde dann die Antwort von Ihrer Datenbank statt von Ihren anderen API-Endpunkten abrufen.

Sie müssen entscheiden, wann Ihre Datenbankdaten aktualisiert werden sollen. Daher benötigt Ihre Tabelle eine Spalte für das letzte Mal, zu dem die Daten abgerufen wurden.

Jedes Mal, wenn ein Benutzer auf die API des Servers zugreift, muss überprüft werden, ob die Daten aktualisiert werden müssen, falls sie nicht Ihre Datenbankkopie bereitstellen. Ansonsten rufe deine andere API auf, speichere sie in der Datenbank (zuletzt geholte Aktualisierungszeit), und serviere sie dann dem Benutzer.