# Absinthe.Phoenix

[![Build Status](](
[![Hex Docs](](
[![Last Updated](](

This package integrates Absinthe subscriptions with Phoenix, so that you can use subscriptions via websockets.

For getting started guides on subscriptions see:

For getting started guides on server side rendering see:

## Installation

Install from [](

For Phoenix 1.4, see the v1.5 branch:

### Phoenix 1.5

def deps do
    {:absinthe_phoenix, "~> 2.0.0"}

Note: Absinthe.Phoenix requires Elixir 1.10 or higher.

## 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.Phoenix hexdocs](
- For the tutorial, guides, and general information about Absinthe-related
  projects, see [](

## Related Projects

See the [GitHub organization](

## Usage

You need to have a working Phoenix PubSub configured. Here is what the default looks like if you create a new Phoenix project:

config :my_app, MyAppWeb.Endpoint,
  # ... other config
  pubsub_server: MyApp.PubSub

In your application supervisor add a line AFTER your existing endpoint supervision

  # other children ...
  MyAppWeb.Endpoint, # this line should already exist
  {Absinthe.Subscription, MyAppWeb.Endpoint}, # add this line
  # other children ...

Where `MyAppWeb.Endpoint` is the name of your application's phoenix endpoint.

In your `MyAppWeb.Endpoint` module add:

use Absinthe.Phoenix.Endpoint

In your socket add:

use Absinthe.Phoenix.Socket,
  schema: MyAppWeb.Schema

Where `MyAppWeb.Schema` is the name of your Absinthe schema module.

That is all that's required for setup on the server.

For client side guidance see the guides.

## GraphiQL Usage

From within GraphiQL:
To use Absinthe.Phoenix from within GraphiQL, you need to tell GraphiQL about your websocket endpoint.

forward "/graphiql", Absinthe.Plug.GraphiQL,
  schema: MyAppWeb.Schema,
  socket: MyAppWeb.UserSocket

## 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](./

## Copyright and License

Copyright (c) 2016 Bruce Williams, Ben Wilson

Released under the MIT License, which can be found in [](./