Build and Deploy a Scalable GraphQL API

A walkthrough for creating and deploying a GraphQL API with Node.js.

Giuseppe
Giuseppe
Jun 9, 2020 · 10 min read
Photo by Author

The Goal

Some Prerequisites

Setup

mkdir graphql-medium
cd graphql-medium
npm init
npm i nodemon
"scripts": {
"start": "nodemon src/index.js"
}

Project Structure

src/types

type Podcast {
id: ID!
name: String!
url: String!
}

src/resolvers

src/models

src/config

Type

npm i apollo-server

Exporting

Mongoose Models

npm i mongoose

Resolver Function Signature

resolver(obj,args,context,info)

Resolvers — Mutations

createPodcast

updatePodcast

deletePodcast

Exporting

Resolvers — Queries

podcasts

Exporting

Resolvers — Exporting

MongoDB Atlas

Creating a cluster

Connecting

DATABASE_URL = 'your-connection-string'
npm i dotenv

Creating the server

Start the server

Local Testing

Deploying

brew tap heroku/brew && brew install heroku
sudo snap install --classic heroku

Create a new Heroku Application

Push to Heroku

git init
heroku git:remote -a <HEROKU_APP_NAME>  
git add -A
git commit -m "Deploying"
git push heroku master
heroku logs --tail

Testing

Final Words

The Dev Café

Code. Learn. Share.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store