
GraphQL is a declarative data fetching specification that provides a client–server interface and uses endpoint to fetch what you need, avoiding over- and under-fetching, open sourced by Facebook in 2015.
Identify prerequisites for the course by noting cross-language concepts, basic knowledge of jazz, and npm for data storage, with the course assuming your computer has the necessary setup.
Install sequelize and dependencies, use dotenv to load environment variables, rename config.json to configure.js, create .sequelizerc, define development and production settings, and update index to the new config.
Learn to create application models for a GraphQL API from the ground up, including five models with a user model featuring username, password, and unique email, plus migrations and enums.
Define models and establish relationships: a user has many threads and replies; threads have many replies; trades belong to China, with explicit user I.D. and China I.D. fields.
Seed a database with sample data for the GraphQL from ground up course, create an admin user, hash passwords with a package, and verify the seeded entries.
Set up a GraphQL server using Apollo Server with Express, define a simple schema with type definitions and a query, and implement resolvers to return data.
Discover how to use the GraphQL playground to test queries, inspect history, format requests, and explore schema via introspection in a dev Apollo server.
learn how to integrate a database with a GraphQL server using Apollo, by either using the models directly or passing the database as the context, a shared object across resolvers.
Define object types in Graphene by creating a user type with fields like id, name, email, and role; extend the query, mutation, and subscription to support scalable APIs.
Create a custom DateTime scalar in GraphQL from ground up by defining scalar DateTime and implementing parse value and serialize to ISO date strings.
Builds the sign up mutation for the GraphQL API, validating unique emails, hashing passwords, and issuing a JWT token, with server context and database integration.
Implement a sign in mutation that validates email and password, decrypts and compares with the stored password, handles invalid email or password, and refactors logic into a reusable function.
Determine if a user is signed in, verify the JWT from the authorization header, and expose a me query returning the currently authenticated user's details via the Apollo Server context.
Learn to fetch all channels with GraphQL by defining a new query inside the channels type, returning a list (possibly empty), and wiring it into the index file.
Create a GraphQL mutation to add a new trade with required id and content, auto-generate slug and log from the title, and align last replied date with created date.
Learn how to fetch a single thread by id in GraphQL, returning a thread or handling not found cases, and define resolvers for fields like the creator using Sequelize relationships.
Explore fetching all trades with GraphQL by returning a list of trades, reusing and renaming queries for consistency, and building with an example that currently shows a single trade.
Update a trade using a GraphQL update thread mutation that requires the trade idea, title, and content. Enforce owner-only updates by validating the user ID before execution.
implement a GraphQL reply feature by creating a mutation to post a trade idea reply with required content, update the last replied date, and fetch all replies for a trade.
implement a GraphQL mutation to mark a reply as favorite using reply id and authenticated user id, returning the result and created flag, then fetch favorites for that reply.
Learn how to implement a mark as favorite feature in GraphQL from ground up, using a boolean to indicate favorites and confirming the reply is marked as favorite.
Implement a GraphQL mutation to mark a reply as best answer, authenticate the user, verify ownership, and update the reply and thread state for is_best_answer visibility.
Learn how to mark and unmark a reply as best answer using GraphQL mutation and query, enforce marking only on your own threads, and reflect updates in a subsequent query.
Learn how to implement a GraphQL update mutation for replies, enforce content input and authentication, verify the requester is the original author, perform update, and handle authorization errors.
Learn how to implement a delete reply mutation in GraphQL, enforce that only the author can delete, return a boolean, and confirm the thread has no replies after deletion.
Learn to implement GraphQL subscriptions on a GraphQL server using Apollo, with pub/sub support and web sockets, and integrate context to handle HTTP and WebSocket requests for real-time updates.
Learn how to implement a GraphQL subscription to notify when a new thread reply is added, using pub sub, publishing a reply event, and subscribing to the reply events.
Learn how to implement GraphQL subscriptions for when a reply is favorited or unfavorited, including defining the schema, publish events, and testing the subscribe flow.
Explore subscribing to GraphQL events from the ground up, focusing on when a reply is marked or unmarked as the best answer and the related payload.
Learn how to update user details in GraphQL by defining a schema, fetching the authenticated user, updating the name, email, and password, then test updates in a playground.
Change user password by supplying current and new passwords, validate against the database, and update the password so the user can log in with the new credentials.
Upload a user avatar by wiring an Apollo Server mutation to stream the file directly to Cloud NRT, configure credentials with env vars, and update the user record.
Fetch a single user by a required username and handle not-found errors, then add a threads field on the user type to fetch threads created by that user.
GraphQL is indeed changing the way APIs are built and many companies and developers are already adopting it because of the great features it introduces over REST. This is a practical course where you’ll learn GraphQL by building a fully-featured API for a forum completely scratch. We’ll start with a gentle introduction to GraphQL and look at some of its improvements over REST, then we gradually move on to building a GraphQL API. This course does not only teach you how to build a real-world GraphQL API from scratch but also some of the best practices from the GraphQL community.