2016-05-19 10 views
1

Ich benutze eine ziemlich teure externe API (es gibt eine Kosten pro Anfrage), die Testcode macht, der es unpraktisch verwendet. In einer idealen Welt hätte ich einen Proxyserver, auf dem ich meine Anfragen ausführen würde, die jede Anfrage (auf der Basis von URL + Abfragezeichenfolge) auf unbestimmte Zeit zwischenspeichern und nur den eigentlichen API-Server treffen würden, wenn ich den Cache explizit für ungültig erkläre gegebene Anfrage. Ist ein solcher Server mit minimaler Konfiguration verfügbar?Proxy verwenden, um teure ausgehende HTTP-Anforderungen zwischenzuspeichern?

Mein aktueller Stapel ist Node.js, Docker, Nginx, PostgreSQL & AWS S3 (für nicht ephemeren Zustand). Ich denke, Varnish könnte erreichen, was ich brauche, aber ich bin mir nicht sicher.

+0

Bietet diese API keine kostenlose Testumgebung? – DaSourcerer

+0

Nein, leider ...:/ –

+0

Es hört sich so an als ob es funktionieren müsste - sonst schau mal in memcached - es tut ganz genau das ... – Jensd

Antwort

0

Varnish kann und wird das erreichen, aber nur, wenn Sie eine 'test'-API erstellen, die ähnliche Daten zurückgibt, mit denen Sie spielen können. Ihre beste Wette, wenn Sie Geld sparen müssen, besteht darin, die API ein paar Mal abzufragen, um verschiedene typische Antworten zu erhalten. Sobald Sie wissen, was Sie erwarten können, erstellen Sie eine Art Dummy-API oder sogar statische JSON- oder XML-Dateien, die Sie verwenden können, um sie nachzuahmen. An diesem Punkt können Sie Varnish und Cache-Ungültigkeit testen, und ich würde mehr als glücklich sein, Ihnen mit der Syntax dafür zu helfen, einige Beispiele des Codes gegeben.

+1

Danke. Am Ende habe ich eine Bibliothek geschrieben, die die clientseitigen API-Aufrufe an AWS S3 "memotisiert"/zwischenspeichert. Just Open hat es tatsächlich https://github.com/blockai/persistent-memoize bezogen –