graphql/express-graphql

[Proposal] Split into multiple middlewares

Open

#113 aberto em 11 de ago. de 2016

Ver no GitHub
 (14 comments) (21 reactions) (0 assignees)JavaScript (482 forks)batch import
enhancementhelp wanted

Métricas do repositório

Stars
 (5.319 stars)
Métricas de merge de PR
 (Nenhuma PRs mesclada em 30d)

Description

Just a idea, but I think we should embrace express middleware system.

Maybe something like below:

import { parser, validate, execute, errorHandler, graphiql } from 'express-graphql';
import logger from 'graphql-third-party-query-param-logger';

const app = express();

app.use('/graphql', parser(...));
app.use('/graphql', logger(...));
app.use('/graphql', validate(...));
app.use('/graphql', execute(...));
app.use('/graphql', errorHander(...));
app.use('/graphql', graphiql(...));

app.listen(3000);

And then we can use middlewares at any points to log and measure performance, even have more control on input, output and errors.

Eventually, more reasonable, extendable middlewares will born and enrich the whole graphql ecosystem.

Relative issue: #101 #102 #107

Guia do colaborador