Absinthe plug
Plug support for Absinthe, the GraphQL toolkit for Elixir
[Plug](https://hex.pm/packages/plug) support for [Absinthe](https://hex.pm/packages/absinthe), the GraphQL toolkit for Elixir. The project is written primarily in Elixir, distributed under the MIT License license, first published in 2015. Key topics include: absinthe, absinthe-graphql, graphiql, graphql, phoenix.
Absinthe.Plug
Plug support for Absinthe,
the GraphQL toolkit for Elixir.
Please see the website at http://absinthe-graphql.org.
Installation
Install from Hex.pm:
elixirdef deps do [{:absinthe_plug, "~> 1.5"}] end
Note: Absinthe.Plug requires Elixir 1.10 or higher.
Absinthe.Plug also requires a JSON codec. Jason and Poison work out of the box.
elixirdef deps do [ ..., {:absinthe_plug, "~> 1.5"}, {:jason, "~> 1.0"} ] end
Upgrading
See CHANGELOG for upgrade steps between versions.
You may want to look for the specific upgrade guide in the Absinthe documentation.
Documentation
See "Usage," below, for basic usage information and links to specific resources.
- Absinthe.Plug hexdocs.
- For the tutorial, guides, and general information about Absinthe-related
projects, see http://absinthe-graphql.org.
Related Projects
See the GitHub organization.
Usage
In your MyAppWeb.Router module add:
elixirplug Plug.Parsers, parsers: [:urlencoded, :multipart, :json, Absinthe.Plug.Parser], pass: ["*/*"], json_decoder: Jason plug Absinthe.Plug, schema: MyAppWeb.Schema
If you want Absinthe.Plug to serve only a particular route, configure your
MyAppWeb.Router like:
elixirplug Plug.Parsers, parsers: [:urlencoded, :multipart, :json, Absinthe.Plug.Parser], pass: ["*/*"], json_decoder: Jason forward "/api", to: Absinthe.Plug, init_opts: [schema: MyAppWeb.Schema]
For more information, see the API documentation for Absinthe.Plug.
Phoenix.Router
If you are using Phoenix.Router, forward expects different arguments:
Plug.Router
elixirforward "/graphiql", to: Absinthe.Plug.GraphiQL, init_opts: [ schema: MyAppWeb.Schema, interface: :simple ]
Phoenix.Router
elixirforward "/graphiql", Absinthe.Plug.GraphiQL, schema: MyAppWeb.Schema, interface: :simple
For more information see Phoenix.Router.forward/4.
GraphiQL
To add support for a GraphiQL interface, add a configuration for
Absinthe.Plug.GraphiQL:
elixirforward "/graphiql", to: Absinthe.Plug.GraphiQL, init_opts: [schema: MyAppWeb.Schema]
See the API documentation for Absinthe.Plug.GraphiQL for more information.
Community
The project is under constant improvement by a growing list of
contributors, and your feedback is important. Please join us in Slack
(#absinthe-graphql under the Elixir Slack account) or the Elixir Forum
(tagged absinthe).
Please remember that all interactions in our official spaces follow
our Code of Conduct.
Contributing
Please follow contribution guide.
License
See LICENSE.md.
Contributors
Showing top 12 contributors by commit count.
