feathers-apollo-server
v2.0.12
Published
A feathers-apollo-server service plugin for for feathers minimalist real-time framework
Downloads
8
Readme
feathers-apollo-server
A feathers-apollo-server plugin for apollo graphql server integration with feathers minimalist real-time framework
Installation
npm install feathers-apollo-server --save
Documentation
graphqlServer({typeDefs,resolver,[opts]},[extraOpts],[graphiqlOpts])
// setup
export const typeDefs = [`type Query{
testString:String
}
schema{
query:Query
}
`];
export const resolvers = {
Query: {
testString () {
'use strict';
return 'this is a test string';
}
}
};
const Opts={path:'/graphql',schema,resolvers} //makeExecutable schema options
const extraOpts={context:{key:"context_Value"}} // graphql server options:
// Register the plugin, see below for an example
app.configure(graphqlService(Opts,extraOpts));
##Plugin Args Opts: The same as makeExecutableSchema options. path,typeDefs and resolvers are required while other arguments are optional,learn more options from graphql-tools
extraOpts(Optional): graphql express options, you can learn more here
graphiqlOpts: Same as graphiql Options except for the grapiqlUrl property for specifying path to graphiql UI default is '/graphiql'
Complete Example
Here's an example of a Feathers server that uses feathers-apollo-server
.
const feathers = require('feathers');
const rest = require('feathers-rest');
const hooks = require('feathers-hooks');
const bodyParser = require('body-parser');
const errorHandler = require('feathers-errors/handler');
const plugin = require('feathers-apollo-server');
const Opts={path:'/plugin',schema,resolvers} //makeExecutable schema options
const extraOpts={context:{key:"context_Value"}} // graphql server options:
// Initialize the application
const app = feathers()
.configure(rest())
.configure(hooks())
// Needed for parsing bodies (login)
.use(bodyParser.json())
.use(bodyParser.urlencoded({ extended: true }))
.use(errorHandler())
// Initialize your feathers plugin
.configure(plugin(opts,extraOpts));
app.listen(3030);
console.log('Feathers app started on 127.0.0.1:3030');
Todo
- Add server request object to graphql context
- Write more tests
- Improve readme documentation
License
Copyright (c) 2016
Licensed under the MIT license.