apollo-server-expressでGraphQLのEndpointを変更する

公開日時
更新日時

apollo-server-expressを使ってGraphQLサーバを構築する場合、デフォルトだとGraphQLのendpointは/graphqlになる。

パブリックなAPIであればこのままでも問題ないが、プライベートなAPIの場合は認証の仕組みが必要になる。

今回はシンプルにendpointに特定のAPIキーが付与されている場合のみアクセスできるようにしてみた。

import { ApolloServer } from 'apollo-server-express';
import express from 'express';

const app = express();

const server = new ApolloServer({ typeDefs, resolvers });
server.applyMiddleware({
  app,
  cors,
  path: process.env.API_KEY ? `/graphql/${process.env.API_KEY}` : '/graphql'
});

applyMiddlewareのpathを設定することでGraphQLのendpointを変更できる。

API_KEY環境変数が設定されている場合はendpointを変更するように設定した。

参考


Related #js

AWS SESの受信メールを暗号化してs3に保存しLambdaで読み込む

jsの場合、複合処理を独自実装する必要がある

Next.jsのPreview Mode時はAnalyticsを無効化する

cookieの__next_preview_dataキーで判定

Next.js 11

手軽にアップグレードできた

VSCode Remoteで新規ファイルを作った際にTypescriptのPathが認識されない問題

「Ctrl + Shift + P」でコマンドパレットを開いて「Reload Window」を実行