GraphQL API with Node.js, TypeScript, PostgreSQL

Learn how to create a GraphQL API with Node.js tech stack

Create GraphQL API in Node.js & TypeScript. Every line of code will be striclty typed. No more “any” type intuitions and the flaws of JavaScript.

What you’ll learn

  • Create GraphQL API with Nodejs, Express, TypeScript, PostgreSQL, Prisma and Redis.
  • Learn to implement authentication,, authorization, CRUD, relationships and a lot more in one of the most popular tech stack out there..
  • Learn all those optimized practices like pagination (cursor), query complexity, caching etc..
  • Learn how to build a practical project, showcase your skills, get a job. No more theoretical stuff with uncertain results..
  • Learn testing GraphQL APIs with insomnia and playground..

Course Content

  • Introduction & Setting up thangs –> 1 lecture • 31min.
  • User Registration and Authentication –> 4 lectures • 1hr 36min.
  • Posts –> 1 lecture • 44min.

Auto Draft

Requirements

Create GraphQL API in Node.js & TypeScript. Every line of code will be striclty typed. No more “any” type intuitions and the flaws of JavaScript.

We will be using Node.js with Express, Nexus Schema for GraphQL, Prisma as an ORM for PostgreSQL, Redis and of course everything will be written in TypeScript, including the auto generated code.

Style

  1. Hands on
    1. We will be spending majority of the time in our very own VS-Code. But we will also be using Playground/Insomnia for testing our GraphQL API.
    2. I recommend you code along. And try to watch it at 1.5x speed at least. It saves time.

Architecture

  1. Users
    1. Register User (Create a new User)
    2. Login (Session based authentication with caching in redis)
    3. Get Authenticated User (Get the currently authenticated user details => more like an api which tells our api consumers that they are authenticated or not => will be judged by the validity of the cookie passed in the requests => our backend will check the cookie’s validity and spit out 401 error if the cookie is invalid/absent)
    4. Logout
    5. Get all Users
  2. Posts
    1. Create Posts (A user can create as many posts it wants => one to many relationship)
    2. Their relationship with User (Each post will be associated to a single user as it’s author/creator => many to one relationship)
    3. Get all Posts

Tech Stack

  1. Language & Frameworks
    1. Node.js
    2. Express
    3. TypeScript
  2. Libraries
    1. PostgreSQL
      1. @prisma/client
    2. GraphQL
      1. nexus (for code oriented GraphQL code base)
      2. apollo-server-express
    3. Authentication
      1. express-session (for authentication => session based and cookies)
    4. Redis Cache
      1. ioredis
      2. connect-redis (for storing sessions in redis,, for authentication)
Get Tutorial