0
0
GraphqlHow-ToBeginner · 3 min read

How to Set Up Apollo Server: Quick Guide for Beginners

To set up Apollo Server, install the apollo-server package, define your GraphQL schema and resolvers, then create and start the server with new ApolloServer({ typeDefs, resolvers }). Finally, call server.listen() to run it and access the GraphQL playground.
📐

Syntax

Setting up Apollo Server involves three main parts:

  • typeDefs: Define your GraphQL schema using the gql template literal.
  • resolvers: Functions that return data for each schema field.
  • ApolloServer instance: Created with new ApolloServer({ typeDefs, resolvers }) and started with server.listen().
javascript
const { ApolloServer, gql } = require('apollo-server');

const typeDefs = gql`
  type Query {
    hello: String
  }
`;

const resolvers = {
  Query: {
    hello: () => 'Hello world!'
  }
};

const server = new ApolloServer({ typeDefs, resolvers });

server.listen().then(({ url }) => {
  console.log(`🚀 Server ready at ${url}`);
});
Output
🚀 Server ready at http://localhost:4000/
💻

Example

This example shows a minimal Apollo Server setup that responds to a hello query with a greeting string. It demonstrates defining schema, resolvers, creating the server, and starting it.

javascript
const { ApolloServer, gql } = require('apollo-server');

// Define schema
const typeDefs = gql`
  type Query {
    hello: String
  }
`;

// Define resolvers
const resolvers = {
  Query: {
    hello: () => 'Hello world!'
  }
};

// Create Apollo Server instance
const server = new ApolloServer({ typeDefs, resolvers });

// Start server
server.listen().then(({ url }) => {
  console.log(`🚀 Server ready at ${url}`);
});
Output
🚀 Server ready at http://localhost:4000/
⚠️

Common Pitfalls

Common mistakes when setting up Apollo Server include:

  • Forgetting to install apollo-server or graphql packages.
  • Not exporting or passing typeDefs and resolvers correctly.
  • Using incorrect syntax in schema definitions.
  • Not awaiting or handling the server.listen() promise properly.

Always check your schema syntax and ensure your resolver functions match the schema fields.

javascript
/* Wrong: Missing gql tag and incorrect schema syntax */
const typeDefs = `
  type Query {
    hello: String
  }
`;

/* Right: Use gql tag for schema parsing */
const { gql } = require('apollo-server');
const typeDefsCorrect = gql`
  type Query {
    hello: String
  }
`;
📊

Quick Reference

StepDescription
Install packagesnpm install apollo-server graphql
Define schemaUse gql to write GraphQL type definitions
Write resolversFunctions to fetch data for schema fields
Create servernew ApolloServer({ typeDefs, resolvers })
Start serverCall server.listen() and log URL

Key Takeaways

Install apollo-server and graphql packages before setup.
Define your schema with gql and write matching resolvers.
Create ApolloServer instance with typeDefs and resolvers.
Start the server with server.listen() to access GraphQL playground.
Check schema syntax and resolver correctness to avoid errors.