feathers-plus / graphql

A high performance GraphQL adapter for SQL and non-SQL databases.

Home Page:https://generator.feathers-plus.com/api/#graphql

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

is this module ready?

poupryc opened this issue · comments

Hello !

First of all, I wanted you to know that a module to bring graphql to Feathers is one of the best idea of the moment!

Nevertheless, this module lacks some information, I have listed some elements:

  • Is this module ready to be used in production ?
  • Will it support graphql subscriptions with the channel.js file ?
  • No implementation examples were given
  • When do you think you'll be able to put it on NPM ?
  • Will it support authentication? (in particular oauth2)

That's a lot of questions but I'm super excited about this project!

f+/graphql has been stable for some months for Feathers service call and for BatchLoader resolvers. Raw SQL-generation resolvers need work.

We have a resolver generation repo that we are now testing with some projects. Because of this, we want to be able to make changes to f+/graphql as needed without compatibility issues. That is why we haven't documented nor publicized f+/graphql.

I expect f+/graphql to be documented in a month, along with the standard example app/test-bed we use.

I expect the resolver generator to release the month after. Not all adapters may be tested by then. Raw SQL resolvers will not be tested for all SQL adapters by then.

We love GraphQL Query. We feel its easier to use normal Feathers for Mutations and Subscriptions.

f+/graphql is a custom service. You can authenticate it like any Feathers service.

When used with resolvers using Feathers service calls (as opposed to using BatchLoaders or raw SQL resolvers) context.params.graphql contains the resolver path for which the call is being made, e.g.

[ 'findUser', '[User]!' ]
[ 'findUser', 0, 'User', 'posts', '[Post!]' ]
[ 'findUser', 0, 'User', 'posts', 0, '[Post!]', 'comments', '[Comment!]' ]
[ 'findUser', 0, 'User', 'posts', 1, '[Post!]', 'comments', '[Comment!]' ]
[ 'findUser', 1, 'User', 'posts', '[Post!]' ]
// ...
[ 'findUser', 2, 'User', 'posts', '[Post!]' ]
// ...
[ 'findUser', 3, 'User', 'posts', '[Post!]' ]
// ...

and you can use this for authorization.

image

image

find* and get* are CRUD queries the resolver-generator creates.

Wow ! I'm really excited to be able to integrate graphQL into my projects! A detailed guide will be provided to parameterize the module?

"We have a resolver generation repo that we are now testing with some projects. Because of this, we want to be able to make changes to f+/graphql as needed without compatibility issues. That is why we haven't documented nor publicized f+/graphql."

For example, we've improved authentication this last week.

Docs will be written for the adapter within the next month. The resolver generator the month after.

thank you for your work ! I just read an article about security with GraphQL, Do you think your module will support different checks?

It supports Feathers authentication on the graphql endpoint and on each of the services. For resolvers using services, the path withing the GraphQL query is available to the service hooks.

I think Feathers hooks are much easier to use design than the design presented by most articles, which consists of nested higher order abstractions.