Welcome to My GraphQL Apollo Server! This project is a simple yet powerful GraphQL server built with Apollo Server, Node.js, and TypeScript. It serves as a mock API for managing TV shows data, allowing users to query information about various TV shows.
- Provides a GraphQL API for querying TV show data πΊ
- Mocks data for TV shows, including titles, IDs, and number of seasons π
- Supports queries to retrieve all TV shows or specific TV shows by ID π
- Clone the repository to your local machine. π¨βπ»
- Install dependencies using
npm install
. π¦ - Start the server using
npm start
. π¬ - Visit
http://localhost:4000
in your browser to access the GraphQL Playground. π - Use GraphQL queries to interact with the API and retrieve TV show data. π¬
query {
tvShows {
id
title
seasons
}
}
Contributions are welcome! If you'd like to contribute to this project, please see the contribution guidelines for more information.
Just like how Pooh Bear shares his honey with his friends, this project is shared under the MIT License. π―π»
This project includes two GitHub Actions workflows to ensure code quality and maintain up-to-date dependencies:
This workflow runs automatically on every push to the main
branch and on pull requests. It performs the following tasks:
- Builds the project to ensure there are no build errors.
- Runs tests with coverage to ensure the codebase remains functional and that test coverage is maintained.
This workflow is scheduled to run daily and can also be triggered manually. It performs the following tasks:
- Updates all npm dependencies to their latest versions.
- Performs a vulnerability scan using Debricked to ensure that updated dependencies do not introduce security vulnerabilities.
- Commits and pushes any changes if dependencies are updated successfully.
These workflows help maintain the health and security of the project, ensuring it remains robust and up-to-date.
I included this section to provide a playful analogy that illustrates how our GraphQL server operates using the familiar concept of a vending machine. By comparing technical concepts to everyday experiences, we aim to make our project more approachable and enjoyable for everyone.
Imagine your GraphQL server as a magical vending machine in a playground. It's a special machine that can give you toys, snacks, or anything you ask for!
On the vending machine, there are colorful buttons with pictures and words. These buttons let you choose what you want from the machine. Pressing a button is like making a query or mutation in GraphQL. You're asking the machine for something specific, like "Give me a toy" or "Change the song."
Inside the vending machine, there are tiny helpers called "Toy Dispensers." Each Toy Dispenser knows how to get a different toy from the magical toy room. When you press a button, the Toy Dispenser gets the toy you asked for and gives it to you. These Toy Dispensers are like resolvers in GraphQL. They know how to find and give you the right information based on your request.
You're the kid playing in the playground. When you want something from the vending machine, you walk up to it and press a button. The vending machine (server) listens to you and gives you what you asked for.
The magic in the playground is GraphQL! It helps you talk to the vending machine (server) and get what you want easily. You just need to press the right buttons, and the machine knows exactly what to do.
So, just like playing in the playground with a magical vending machine, using GraphQL is like having a fun and easy way to ask for things and get them quickly!