1

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?

Antwort

2

Nein. POST ist nicht idempotent, und da Sie keinen Zugriff auf Firnly (Firebase Hosting CDN Provider) Lackregeln haben, können Sie nicht einmal "hacken", um es zu erreichen.

1

Firebase-Hosting speichert keine POST-Antworten.

Ich bin kein GraphQL-Experte, aber soweit ich sehen kann, erlauben sie die GET verb for non-mutating requests. Während Sie Ihren Code ändern müssten, können Sie die Antwort zwischenspeichern.

Verwandte Themen