Do you want to learn GraphQL and keep your Node.js skills up-to-date and relevant?
Do you want to learn GraphQL and keep your Node.js skills up-to-date and relevant?
GraphQL is quickly changing how Node.js developers write their APIs and backend applications. It offers a much-needed replacement to the traditional It’s by far the most exciting change we’ve seen to Node.js development in a long time. Goodbye Express. Hello GraphQL.
Who should learn GraphQL? Anyone building backend applications with Node.js.
In this class, you’ll learn how to use GraphQL to replace the standard Express GraphQL can be used with any client that has internet access, whether it’s a web app, mobile app, or server-side application.
Big and small companies, from Twitter and Facebook to Yelp and Twitch, are switching from frameworks like Express to GraphQL.
I designed this class to give you the skills and real-world experience needed to build and launch your own GraphQL apps.
To kick the class off, we’ll answer a few important questions. What is GraphQL? Why is it useful? How is GraphQL going to help me build better applications with Node.js?
Next, you’ll master the fundamentals of GraphQL by building out a blogging application. You’ll learn about GraphQL schemas, data types, queries, mutations, subscriptions, and many other fantastic GraphQL features.
From there, you’ll set up advanced features like authentication, database storage, production deployment, automated test suites, and more.
Throughout the course you’ll learn how to:
Model your application data using schemas
Create queries and subscriptions allowing clients to access data in the database
Create mutations allowing clients to create and change data in the database
Query and change your data from the browser by making requests with Apollo Client
Work with the Prisma ORM (v1) to communicate with your database via a GraphQL API
Deploy your GraphQL applications to production
Secure your application data with an authentication system
Write an automated test suite for your application
Learn GraphQL by Writing Code
This course was designed to be interactive, with more than 80 challenges along the way to get you writing code and solving problems on your own. This will give you the real-world skills and experience needed to write GraphQL applications once you’re done with the class.
Everything you need comes in one easy-to-use package.
There’s no need to worry whether you’re learning the right skills to land that GraphQL job or launch that GraphQL app. I’ve mapped out everything you need to know in an interactive, easy-to-follow package designed to get you up and running in a couple of weeks.
Get access to fast support if you get stuck.
There’s nothing worse than getting stuck ten hours into a course and not getting the help you need to continue. Getting stuck is part of the learning process. That’s why I’m here to answer every single question.
I guarantee this is the most up-to-date and engaging GraphQL course available, and it comes with a Udemy 30-day money-back guarantee.
The first videos are available as a free preview, so I’ll see you inside the class.
- Andrew Mead
In this section, you’ll learn how to work with arrays in GraphQL. This lesson covers arrays where the array elements are scalar values such as string, numbers, or booleans.
In this lesson, you’re going to learn how to think in graphs. This will set us up to work with a GraphQL API in the next lesson.
In this video, you’re going to make your very first GraphQL query. Queries are used to fetch data from a GraphQL API.
In this lesson, you’re going to set up Babel. This will allow you to take advantage of all the latest JavaScript features such as the ES6 import/export syntax.
In this video, you’re going to learn about JavaScript modules. JavaScript modules make it easy to share code between files, allowing us to create more advanced applications without messy code.
In this lesson, you’re going to set up your very own GraphQL API!
In this lesson, you’re going to learn about the five scalar types supported by GraphQL.
In this lesson, you’re going to set up nodemon with Node and Babel. Nodemon will automatically restart your server after you make any changes, allowing you to speed up development.
In this lesson, you’ll be creating your first custom object types. This will allow you to model your application data and represent it in the application schema.
In this lesson, you’re going to explore operation arguments. This allows you to pass data from the client to the GraphQL server.
In this lesson, you’ll learn how to work with arrays in GraphQL. This lesson covers arrays where the array elements are scalar values such as string, numbers, or booleans.
In this lesson, you’re going to continue learning about arrays. Specifically, you’ll learn how to work with arrays of objects, such as an array of posts or an array of users.
In this lesson, you’ll start to explore relational data in GraphQL. Setting up relationships between your object types allows you to query based on those relationships, which is one of the best features of GraphQL.
In this lesson, you’ll continue exploring relational data in GraphQL by setting up an array-based association.
In this lesson, you’re going to start a three-part challenge series designed to test and reinforce what you’ve learned so far in the course.
In this lesson, you’re going to continue implementing comments by setting up associations between the comment and the post.
In this lesson, you’re going to wrap up this challenge series by setting up associations between the comment and the user.
In this section, you’ll be exploring GraphQL mutations. Mutations let you create, update, and delete data using GraphQL. By the end of this section, you’ll have everything you need to perform all the CRUD operations (create, read, update, delete).
In this lesson, you’ll create and execute your very first mutation. This will allow clients to perform operations like signing up a new user or creating a new post.
In this lesson, you’ll continue to explore mutations. You’ll set up mutations for types that have required associations with other types.
In this lesson, you’ll be configuring babel to support the object spread operator. You’ll also learn why this operator is useful and how it can be used to clean up our resolver methods.
In this lesson, you’re going to learn about the input type. This allows you to set up arguments as objects, giving you more control over how your operations function.
In this lesson, you’ll learn how to use mutations to remove data from a GraphQL back-end.
In this lesson, it’s going to be up to you to create mutations for deleting posts and comments.
In this lesson, you’re going to start refactoring your application’s architecture. The goal is to break up index.js into smaller files that are easier to manage and easier to scale.
In this lesson, you’ll wrap up refactoring the application by splitting the application resolvers up across several smaller files.
In this lesson, it’s up to you to create mutations for updating posts and comments.
In this section, you’ll be exploring GraphQL subscriptions. Subscriptions give clients a way to subscribe to data changes and get notified by the server when data changes. Subscriptions make it possible to create real-time applications where the client renders data changes in real-time.
In this lesson, you’ll create your first subscription. The goal here is to explore the basic syntax used for subscriptions and actually get some real-time data sent from the server to the client.
In this lesson, you’ll be creating a GraphQL subscription for the blogging application. The subscription will allow clients to subscribe to new comments added on a given post. That would allow the front-end, whether it’s a mobile app or website, to render new comments to the visitors in real-time.
In this lesson, it’s your job to create a subscription that allows clients to be notified when new posts are created.
In this lesson, you’ll be expanding the post subscription. The server currently notifies subscribers when posts are created. This is a good start, but the server should also notify clients when posts are updated or deleted. This will allow the client to keep the UI completely up to date.
In this lesson, it’s going to be up to you to expand the comments subscription. The goal is to notify subscribers when comments are created, updated, or deleted.
In this lesson, you’re going to learn about enums (enumerations) in GraphQL.
In this section, you’ll be integrating Prisma into your GraphQL project. Prisma is a GraphQL specific ORM (Object Relational Mapping) that makes it easy to integrate data storage into your GraphQL applications.
In this lesson, you’ll learn exactly what Prisma is and where it fits into your application’s architecture.
In this lesson, you’ll be setting up your Mac to work with Prisma. There are a few tools and dependencies you’ll need before it can be used.
In this lesson, you’ll be setting up your Windows machine to work with Prisma. There are a few tools and dependencies you’ll need before it can be used
In this lesson, you’ll be setting up your Linux machine to work with Prisma. There are a few tools and dependencies you’ll need before it can be used.
In this lesson, you’ll be creating and running your first Prisma service using the tools set up in the previous videos.
In this video, you’re going to explore the GraphQL API that’s provided by Prisma.
In this lesson, you’ll learn how to customize your Prisma data model and how to push those changes to the Prisma service.
In this lesson, it’s going to be up to you to integrate comments into the Prisma project.
In this lesson, you’ll learn how to communicate with the Prisma GraphQL API from Node.js. That will allow you to read and write to the database right from Node.js itself.
In this lesson, you’ll be exploring how to perform queries using the bindings you just configured. This will allow you to fetch data out of the database.
In this lesson, you’ll learn how to preform mutations using Prisma bindings. This will allow you to create, update, and delete data right from Node.js.
In this lesson, you’ll learn how to use async/await with the bindings provided by Prisma. Integrating async/await will simplify your asynchronous code, making it easier to read, write, and maintain.
In this lesson, you’ll learn how to check if a given record exists using the bindings provided by Prisma. This will enable checks such as checking if a given user exists with a specific email address.
In this lesson, you’ll learn how to customize the relationships between types. This gives you fine grain control over what happens to related data when a given record gets removed.
In this challenge video, it’ll be up to you to model a review website using what you’ve learned about GraphQL and Prisma.
In this challenge solution, you’ll go over the steps necessary to create a Prisma application for a review website.
In this section, you’ll learn how to create an authentication system using GraphQL. This will allow users to sign up and login to the application with an email and password. You’ll also learn how to limit access to your GraphQL API based on authentication.
In this lesson, you’ll start to integrate Prisma into your Node.js GraphQL API. The goal here is to set up the Node.js application as the middleman between the client and Prisma, allowing you to lock down your data with authentication.
In this lesson, you’ll learn how to take operation arguments provided to the Node.js API and pass them through to the Prisma API. This will allow you to set up filtering, sorting, and pagination.
In this lesson, you’ll explore how Prisma makes it unnecessary to set up custom type resolvers for associated data.
In this lesson, you’ll start integrating Prisma into the mutations for your Node.js GraphQL API. This is similar to what you’ve already done for your application queries.
In this lesson, it’s up to you to continue integrating Prisma into the Node.js application.
In this lesson, you’ll learn how to set up your subscriptions to work with Prisma. The good news is that you’ll be able to vastly simplify your application code.
In this lesson, you’ll learn how to lock down access to the Prisma API. Right now, the Prisma API is open to the public, allowing anyone to read and write from the database without needing to authenticate. That’s a problem.
In this lesson, you’ll make a small update to ensure that you can still fetch the generated schema from Prisma, even though Prisma is not protected by the secret.
In this lesson, you’ll start adding password support into the application. The goal here is to require a password when someone signs up for the application.
In this lesson, you’re going to learn about JSON Web Tokens. JSON Web Tokens, also known as JWTs, provide you with a secure way to create authentication tokens for your application.
In this lesson, it’ll be up to you to create a new mutation that allows users to log in to the application.
In this lesson, you’ll learn how to validate an authentication token.
In this video, you’ll start locking down your mutations. This will ensure the client is authenticated before any data in the database is created, updated, or deleted.
In this lesson, it’ll be up to you to lock down the other application mutations.
With your mutations behind authentication, in this video, you’ll learn how to lock down your application queries.
In this video, you’ll continue to lock down your application queries.
In this lesson, you’ll learn how to hide an individual field behind authentication. This will give you a way to hide user email address from the public.
In this lesson, you’ll learn about GraphQL fragments. Fragments give you a reusable way to define a selection set. No longer will you have to list out all the fields for a user, post, or comment every time you define your selection sets.
In this lesson, it’ll be up to you to clean up a few edge cases in the application.
In this lesson, you’ll learn how to put your subscriptions behind authentication.
In this lesson, you’ll learn how to expire JSON Web Tokens after a specific period of time.
In this video, you’ll allow users to update their passwords.
In this section, you’ll learn how to paginate and sort your GraphQL data. This will give more options to clients so they can request just the data they need, in the order they want it in.
In this lesson, you’ll learn how to integrate pagination into your GraphQL queries. This will allow clients to fetch a limited number of posts, such as the first 20, with the ability to fetch the next set of 20 when they need them.
In this lesson, you’ll learn how to set up pagination using cursors. This is an alternative way to specify which records should be fetched.
In this lesson, you’ll learn how to work with createdAt and updatedAt. These timestamps keep track of when a given record was created and when it was last updated.
In this lesson, you’ll learn how to sort data with GraphQL and Prisma. This will allow clients to fetch data sorted in a way that’s useful to them. For example, blog posts on the home page should probably be sorted with the newest posts first.
In this section, you’ll be deploying your app to production. By the end, you’ll have a live GraphQL API that can be accessed by anyone with an internet connection.
In this lesson, you’ll set up your production database and production Prisma server using Prisma Cloud. Prisma Cloud makes it simple to deploy and manage your Prisma application.
In this lesson, you’ll deploy your Prisma project to the production server you created in the last lesson.
In this lesson, you’ll explore the production Prisma service you deployed in the last one.
In this lesson, you’ll start getting the Node.js application ready for deployment. There are a few changes that need to be made before Heroku will be able to run the app.
In this lesson, you’ll be wrapping up the deployment of the Node.js application. By the end, your GraphQL API will be deployed live to the web.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.