# graphql/express-graphql

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/graphql-express-graphql).**

6,270 stars · 523 forks · TypeScript · MIT · archived

## Links

- GitHub: https://github.com/graphql/express-graphql
- awesome-repositories: https://awesome-repositories.com/repository/graphql-express-graphql.md

## Topics

`express-graphql` `express-middleware` `graphql`

## Description

express-graphql is a GraphQL API server implementation and HTTP middleware that connects a GraphQL schema to an HTTP server. It provides a request parser to extract queries and variables from various content types and a context provider to inject HTTP request data and session state into resolver functions.

The library includes a browser-based interactive IDE that detects GET requests to serve an HTML interface for testing queries and inspecting responses. It also supports a custom execution pipeline, allowing for the override of default parsing, validation, execution, and error formatting functions.

The project covers API integration through middleware and request parameter parsing, alongside architecture for AST-based query validation and schema-based execution. It further provides mechanisms for response metadata extension and the application of validation rules to restrict specific fields or operations.

## Tags

### Web Development

- [GraphQL API Implementations](https://awesome-repositories.com/f/web-development/graphql-api-implementations.md) — Implements server-side GraphQL interfaces to allow clients to request specific data based on a schema.
- [GraphQL Integration Middleware](https://awesome-repositories.com/f/web-development/backend-development/web-frameworks/node-js-server-frameworks/graphql-integration-middleware.md) — Bridges GraphQL execution logic into web server frameworks as middleware for request processing. ([source](https://github.com/graphql/express-graphql/blob/main/package.json))
- [Express Integrations](https://awesome-repositories.com/f/web-development/express-integrations.md) — Integrates GraphQL schema handling into Express applications via middleware.
- [GraphQL HTTP Endpoints](https://awesome-repositories.com/f/web-development/graphql-http-endpoints.md) — Provides the primary mechanism to connect a GraphQL schema to an HTTP server for network-based data queries. ([source](https://graphql.github.io/graphql-over-http))
- [GraphQL Request Processing](https://awesome-repositories.com/f/web-development/graphql-request-processing.md) — Provides a request processing system that parses GraphQL documents and maps them to underlying data sources for execution.
- [GraphQL Schema Hosting](https://awesome-repositories.com/f/web-development/graphql-schema-definitions/graphql-schema-hosting.md) — Deploys a defined GraphQL data schema to a web endpoint for network-based querying and mutation.
- [GraphQL Servers](https://awesome-repositories.com/f/web-development/graphql-servers.md) — Provides a server implementation that processes network requests and resolves data using a GraphQL schema.
- [GraphQL Request Parsing](https://awesome-repositories.com/f/web-development/request-body-handling/request-body-alterations/request-body-parsing/graphql-request-parsing.md) — Extracts queries, variables, and operation names from URL query strings and various POST body content types. ([source](https://github.com/graphql/express-graphql/blob/8b6ffc65776aa40d9e03f554425a1dc14840b165/README.md))
- [Request Context Management](https://awesome-repositories.com/f/web-development/request-context-management.md) — Manages the passing of user session data and authentication tokens from HTTP requests into resolvers.
- [Embedded GraphQL IDEs](https://awesome-repositories.com/f/web-development/graphql-servers/embedded-graphql-ides.md) — Ships an embedded GraphQL IDE within the server middleware for in-browser API exploration and testing.

### Development Tools & Productivity

- [Resolver Context Injection](https://awesome-repositories.com/f/development-tools-productivity/strict-dependency-resolvers/resolver-context-injection.md) — Injects HTTP request data and session state into GraphQL resolver functions for authentication and context management. ([source](https://github.com/graphql/express-graphql/blob/8b6ffc65776aa40d9e03f554425a1dc14840b165/README.md))
- [GraphQL Resolver Contexts](https://awesome-repositories.com/f/development-tools-productivity/strict-dependency-resolvers/resolver-context-injection/graphql-resolver-contexts.md) — Injects HTTP request data and session state into GraphQL resolver functions via a context provider.
- [Interactive GraphQL IDEs](https://awesome-repositories.com/f/development-tools-productivity/interactive-graphql-ides.md) — Detects browser-based GET requests to serve an interactive HTML interface for testing queries and headers.
- [Execution Pipeline Overrides](https://awesome-repositories.com/f/development-tools-productivity/parallel-execution/custom-parallel-task-execution/execution-logic-overrides/execution-pipeline-overrides.md) — Allows overriding default parsing, validation, execution, and error formatting functions with custom logic. ([source](https://github.com/graphql/express-graphql/blob/8b6ffc65776aa40d9e03f554425a1dc14840b165/README.md))
- [GraphQL IDEs](https://awesome-repositories.com/f/development-tools-productivity/web-based-ides/graphql-ides.md) — Ships a built-in interactive IDE for exploring and testing GraphQL APIs directly in the browser.

### Networking & Communication

- [Middleware-Based Request Pipelines](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/request-processing-architectures/request-processing/middleware-based-request-pipelines.md) — Processes GraphQL queries within a modular middleware-based request-response pipeline.

### Software Engineering & Architecture

- [AST Validation](https://awesome-repositories.com/f/software-engineering-architecture/contextual-validation-rules/dynamic-validation-rules/validation-rule-engines/ast-validation.md) — Applies structural validation by traversing the abstract syntax tree of a query to restrict specific fields or operations. ([source](https://github.com/graphql/express-graphql/blob/8b6ffc65776aa40d9e03f554425a1dc14840b165/README.md))
- [Schema-Based Execution](https://awesome-repositories.com/f/software-engineering-architecture/schema-based-execution.md) — Maps incoming network requests to a predefined GraphQL schema to resolve data through field-level functions.

### Testing & Quality Assurance

- [GraphQL Testing](https://awesome-repositories.com/f/testing-quality-assurance/api-network-testing/api-testing/graphql-testing.md) — Provides an interactive interface for running queries and inspecting responses during development.
