graphql/express-graphql

[Proposal] Split into multiple middlewares

Aperta

#113 aperta il 11 ago 2016

 (14 commenti) (21 reazioni) (0 assegnatari)JavaScript (482 fork)batch import
enhancementhelp wanted

Metriche repository

Star
 (5319 stelle)
Metriche merge PR
 (Metriche PR in attesa)

Descrizione

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

Guida contributor