A Plug integration for GraphQL Elixir that enables GraphQL endpoints in Phoenix applications.
GraphQL Plug is a middleware integration that connects the GraphQL Elixir implementation with Phoenix web applications. It provides a straightforward way to mount GraphQL endpoints within Phoenix routers, enabling developers to build GraphQL APIs using Elixir's ecosystem. The project solves the problem of bridging GraphQL schemas with HTTP endpoints in a Phoenix context.
Elixir developers building GraphQL APIs with Phoenix who want a clean integration between GraphQL schemas and web endpoints. It's particularly useful for teams adopting GraphQL in their Elixir/Phoenix stack.
Developers choose GraphQL Plug because it provides a minimal, idiomatic Elixir solution that leverages the existing Plug architecture. It offers a simpler alternative to more complex GraphQL server implementations while maintaining compatibility with the GraphQL Elixir ecosystem.
Plug (Phoenix) integration for GraphQL Elixir
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Allows mounting GraphQL endpoints directly in Phoenix routers using the familiar `forward` syntax, making it feel native to existing Phoenix applications as shown in the usage example.
Builds on Elixir's composable middleware system, enabling flexible HTTP request handling and easy integration with other Plugs, aligning with the project's philosophy.
Provides a lightweight layer that connects GraphQL schemas to endpoints without imposing unnecessary abstractions, keeping setup simple and focused.
Automatically manages JSON content types for GraphQL requests and responses, reducing boilerplate code for API interactions.
The README admits the GraphQL Elixir ecosystem is in 'early days' and 'needs a lot more work,' leading to potential stability issues and limited third-party support.
Focuses on basic queries and mutations; lacks built-in support for advanced GraphQL features like subscriptions or batching, which may require custom workarounds.
Tightly coupled to Phoenix, making it unsuitable for non-Phoenix Elixir projects or those preferring a framework-agnostic GraphQL server.