Skip to content

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

Notifications You must be signed in to change notification settings

jackrobertscott/graphql-api-demo-180906

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published