![Coverage](https://sonar.midgar.io/api/project_badges/measure?project=Midgar%3Aapollo-server&metric=coverage)
@midgar/apollo-server
PLugin Midgar pour ajoute un service Apollo serveur avec loader de module graphql et injéction de service.
Installation
$ npm i @midgar/apollo-server --save
Si tout s'est bien passé, un message de confirmation s'affiche:
#midgar-cli
@midgar/apollo-server added to plugins.js !
Fonctionnement
Ajoute un dossier de plugin midgar-graphql: ./graphql/ pour les modules graphl.
module grapql
Un module graphql est un fichier javacript exportantles typeDefs et les resolvers graphql.
exemple d'un module graphl:
import { gql } from 'apollo-server-express'
const typeDefs = gql`
type User {
id: ID!
email: String!
}
extend type Query {
addUser(email: String): User
getUsers: [User]
}
`
export default {
dependencies: ['mid:user']
graphql: (mid, userService) => {
return {
typeDefs,
resolvers:{
User: {
...
}
Query: {
createUser: async (parent, args, ctx, info) => {
await userService.create(args.email, args.parssword)
},
getUsers: (parent, args, ctx, info) => {
...
},
}
}
}
}
}
Vous pouvez séparrer le fichier si besoin:
import typeDefs from './user.typedefs'
import resolvers from './user.resolvers'
export default {
dependencies: ['mid:user']
graphql: (...args) => {
return {
typeDefs,
resolvers: () => resolvers(...args)
}
}
}
Les fichiers *.typedefs.js et *.resolvers.js ne sont pas importé lors de l'import des modules graphql.