1

Firebaseの上にGraphQL APIを構築しました。 APIはリクエストを処理するためにFirebase Hostingに接続されたクラウド機能を利用します。Firebase関数に対するPOST要求への応答のキャッシュ

私の目的は、GraphQL APIに送信されたリクエストに対するレスポンスをキャッシュすることです。

次のようにアンExpressJSミドルウェアが設定されている

function setCacheHeaders(req, res, next) { 
    res.set('Cache-Control', 'public, max-age=300, s-maxage=600'); 
    return next(); 
} 

私はAPIにGETリクエストを送信した場合、私はそれがCDNを打つ参照してください。ただし

X-Cache: HIT 
X-Cache-Hits: 1 
X-Served-By: cache-lhr6343-LHR 

、私はPOSTを送信するときリクエスト(これは、読取り専用操作であっても、GraphQLエンドポイントとやりとりするための通常の方法です)キャッシュにヒットするリクエストはないことがわかります。ただし、応答には次のヘッダーが含まれています。

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 

Firebase HostingでのPOST要求に対する応答をキャッシュすることはできませんか?

答えて

2

番号POSTは冪等ではなく、Fastly(Firebase Hosting CDNプロバイダ)のワニス規則にアクセスできないので、達成するために「ハック」することさえできません。

1

Firebase HostingはPOST応答をキャッシュしません。

私はGraphQLのエキスパートではありませんが、私が見る限り、彼らはGET verb for non-mutating requestsを許可しています。コードを変更する必要がありますが、レスポンスをキャッシュすることができます。

関連する問題