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