Ich habe eine GraphQL-API auf Firebase erstellt. Die API verwendet eine Cloud-Funktion, die mit Firebase Hosting verbunden ist, um Anfragen zu bearbeiten.Zwischenspeichern der Antwort auf eine POST-Anforderung an eine Firebase-Funktion
Mein Zweck ist es, die Antwort für Anfragen an die GraphQL-API zwischenzuspeichern.
Eine Express.js Middleware ist wie folgt konfiguriert:
function setCacheHeaders(req, res, next) {
res.set('Cache-Control', 'public, max-age=300, s-maxage=600');
return next();
}
Wenn ich eine GET-Anforderung an die API senden, ich sehe es CDN schlagen:
X-Cache: HIT
X-Cache-Hits: 1
X-Served-By: cache-lhr6343-LHR
Allerdings, wenn ich eine POST senden Anfrage (was die übliche Art ist, mit einem GraphQL-Endpunkt zu interagieren, selbst wenn es sich um eine Nur-Lese-Operation handelt) Ich stelle fest, dass keine Anfragen den Cache treffen. Die Antwort enthält jedoch die folgenden Header:
HTTP/1.1 200 OK
Accept-Ranges: bytes
Connection: keep-alive
Content-Length: 311
Content-Type: application/json
Date: Thu, 27 Jul 2017 05:41:02 GMT
Server: nginx
Strict-Transport-Security: max-age=31556926
Vary: Accept-Encoding, Authorization, Cookie
Via: 1.1 varnish
X-Cache: MISS
X-Cache-Hits: 0
X-Served-By: cache-lcy1133-LCY
X-Timer: S1501134062.745716,VS0,VE640
cache-control: public, max-age=300, s-maxage=600
function-execution-id: xg0qjlghrtrv
x-cloud-trace-context: 02434a5f73159e24d949e74026bb8843, 02434a5f73159e24d949e74026bb8843
x-powered-by: Express
Ist es nicht möglich, die Antwort auf eine POST-Anforderung mit Firebase Hosting zwischenzuspeichern?