graphql-compose-examples
graphql-compose-examples copied to clipboard
Live examples of schemas builded with graphql-compose
This is example app of graphql-compose
Live example on Heroku: https://graphql-compose.herokuapp.com/
yarn install
yarn seed && yarn dev
open http://localhost:3000
User: simple schema with one type
This example has simple User mongoose model that supports bunch of CRUD operations.
const UserSchema = new mongoose.Schema({
name: String, // standard types
age: {
type: Number,
index: true,
},
languages: {
type: [LanguagesSchema], // you may include other schemas (here included as array of embedded documents)
default: [],
},
contacts: { // another mongoose way for providing embedded documents
email: String,
phones: [String], // array of strings
},
gender: { // enum field with values
type: String,
enum: ['male', 'female', 'ladyboy'],
},
});
User for Relay: simple schema with one type
This schema shows all available CRUD operations which are compatible with Relay. It uses graphql-compose-mongose and graphql-compose-relay:
composeWithRelay(RootQueryTC)addsnodefield to the RootQuery. ViaRootQuery.node(id)you may find objects by globally unique ID among all types.composeWithRelay(UserTC)- modifyUserTCgenerated bygraphql-compose-mongoose- adds
idfield with Relay's globally unique ID - this type will be added to
NodeInterfacefor resolving viaRootQuery.node - for mutations will be added
clientMutationIdto input and output objects types - also all arguments in mutations will be moved into
inputarg
- adds
Northwind: complex schema with 8 models πΆπΆπΆ
This is a sample data of some trading company, which consists from 8 models. All models has cross-relations to each other. This schema used in the Relay example app: Server schema code, Client app code, Live demo of client.

Elasticsearch REST API wrapper
This schema uses graphql-compose-elasticsearch module and provides full API available in the official elasticsearch module.