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を変更するように設定した。