This package interfaces with the GraphQLGate rate-limiting package to log query data for visualization in the Gateway developer portal
-
Signup/login to the Gateway developer portal.
-
Create a new project to recieve a project ID and API key.
-
Import and configure the GraphQLGate rate-limiting package
Install the package
npm i gate-logger
Import the package and add the logging middleware to the Express middleware chain BEFORE the GraphQLGate middleware.
** ERRORS WILL BE THROWN if the logger is added after the limiter **
Copy the project ID and the API key from your project on the Gateway developer portal and include them as middleware arguments.
// import package
import gateLogger from 'gate-logger';
import expressGraphQLRateLimiter from 'graphqlgate';
/**
* Import other dependencies
* */
// Add the logger middleware into your GraphQL middleware chain
app.use('gql', gateLogger(/* PROJECT ID */, /* API KEY */ );
//Add the rate limiteing middleware
app.use(
'gql',
expressGraphQLRateLimiter(schemaObject, {
rateLimiter: {
type: 'TOKEN_BUCKET',
refillRate: 10,
capacity: 100,
},
}) /** add GraphQL server here */
);
And that's it! The logger will now send all query rate-limiting data, blocked or allowed, for you to view in the Gateway developer portal!