marioblas / graphql-api-demo

🔥 Demo implementation of a production-ready API using GraphQL.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GraphQL API Demo

Demo implementation of a GraphQL server.

PRs Welcome License: MIT

This repository was made in conjuction with this tutorial. Use this repository as an example for building your own GraphQL capable APIs.

Highlights

  • Uses mongoose for data validation.
  • Fully functional GraphQL query and mutation system with apollo-server.
  • Nested queries for related database items.

Install

Clone the repository to your computer and move into the root directory.

git clone https://github.com/jackrobertscott/graphql-api-demo.git && cd graphql-api-demo

Install the dependencies.

npm install

Run the server in development mode.

npm run dev

While in development mode; the app will listen for changes and reload automatically.

Production

This repository uses TypeScript. As such, you will need to compile it before you run the production version.

npm run compile && npm run start

Or alternatively, use typescript in production (this uses ts-node).

npm run start:ts

Examples

Here are some example queries which you can use as a starting point when using the playground.

query GetWorkspaces {
  workspaces {
    id
    name
  }
}
mutation CreateWorkspace {
  addWorkspace(input: { name: "Cool Workspace" }) {
    name
  }
}
query GetUsersWithWorkspaces {
  users {
    id
    workspaceId
    workspace {
      name
    }
  }
}
mutation UpdateUserWithWorkspace {
  editUser(id: "<INSERT_A_USER_ID_HERE>", input: {
    workspaceId: "<INSERT_A_WORKSPACE_ID_HERE>"
  }) {
    workspace {
      name
    } 
  }
}

Authors

About

🔥 Demo implementation of a production-ready API using GraphQL.


Languages

Language:TypeScript 100.0%