Demo implementation of a GraphQL server.
This repository was made in conjuction with this tutorial. Use this repository as an example for building your own GraphQL capable APIs.
- Uses mongoose for data validation.
- Fully functional GraphQL query and mutation system with apollo-server.
- Nested queries for related database items.
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.
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
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
}
}
}