feathers-apollo-server

2.0.12 • Public • Published

feathers-apollo-server

Build Status Code Climate Test Coverage Dependency Status Download Status

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.

Package Sidebar

Install

npm i feathers-apollo-server

Weekly Downloads

1

Version

2.0.12

License

MIT

Last publish

Collaborators

  • rollymaduk