Plug support for Absinthe, the GraphQL toolkit for Elixir.
Please see the website at http://absinthe-graphql.org.
Install from Hex.pm:
def deps do
[{:absinthe_plug, "~> 1.5"}]
end
Absinthe.Plug
also requires a JSON codec. Jason
and Poison
work out of the box.
def deps do
[
...,
{:absinthe_plug, "~> 1.5"},
{:jason, "~> 1.0"}
]
end
Basic Usage:
plug 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
router like:
plug 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
.
If you are using Phoenix.Router, forward
expects different arguments:
forward "/graphiql",
to: Absinthe.Plug.GraphiQL,
init_opts: [
schema: MyAppWeb.Schema,
interface: :simple
]
forward "/graphiql",
Absinthe.Plug.GraphiQL,
schema: MyAppWeb.Schema,
interface: :simple
For more information see Phoenix.Router.forward/4.
To add support for a GraphiQL interface, add a configuration for
Absinthe.Plug.GraphiQL
:
forward "/graphiql",
to: Absinthe.Plug.GraphiQL,
init_opts: [schema: MyAppWeb.Schema]
See the API documentation for Absinthe.Plug.GraphiQL
for more information.
See HexDocs.
- For the tutorial, guides, and general information about Absinthe-related projects, see http://absinthe-graphql.org.
- Join the community of Absinthe users.
See the project list at https://github.com/absinthe-graphql.
See LICENSE.md.