hubertlepicki
Setting up Absinthe on Phoenix + Bandit project
I am trying to set up Absinthe following the documentation here: Plug and Phoenix Setup — absinthe v1.11.0
on a brand new Phoenix 1.7 project.
I have generated the project with:
mix phx.new api --no-assets --no-ecto --no-dashboard --no-mailer --no-html --no-live --no-gettext --module=API
and now I try to add Absinthe. I installed dependencies:
defp deps do
[
{:phoenix, "~> 1.7.20"},
{:telemetry_metrics, "~> 1.0"},
{:telemetry_poller, "~> 1.0"},
{:jason, "~> 1.2"},
{:dns_cluster, "~> 0.1.1"},
{:bandit, "~> 1.5"},
{:absinthe_plug, "~> 1.5"}
]
end
And I configured my router:
defmodule APIWeb.Router do
use APIWeb, :router
forward "/api/graphql", Absinthe.Plug,
schema: API.Schema
forward "/api/graphiql",
Absinthe.Plug.GraphiQL,
schema: API.Schema,
interface: :simple
end
The app compiles but when I make requests to either /api/graphq or /api/graphiql I am getting:
[info] GET /api/graphiql
[error] ** (Plug.Conn.NotSentError) a response was neither set nor sent from the connection
(bandit 1.6.7) lib/bandit/pipeline.ex:172: Bandit.Pipeline.commit_response!/1
(bandit 1.6.7) lib/bandit/pipeline.ex:44: Bandit.Pipeline.run/4
(bandit 1.6.7) lib/bandit/http1/handler.ex:12: Bandit.HTTP1.Handler.handle_data/3
(bandit 1.6.7) lib/bandit/delegating_handler.ex:18: Bandit.DelegatingHandler.handle_data/3
(bandit 1.6.7) lib/bandit/delegating_handler.ex:8: Bandit.DelegatingHandler.handle_continue/2
(stdlib 6.0.1) gen_server.erl:2163: :gen_server.try_handle_continue/3
(stdlib 6.0.1) gen_server.erl:2072: :gen_server.loop/7
(stdlib 6.0.1) proc_lib.erl:329: :proc_lib.init_p_do_apply/3
My schema so far is also generated from documentation:
defmodule API.Schema do
use Absinthe.Schema
@desc "An item"
object :item do
field(:id, :id)
field(:name, :string)
end
# Example data
@items %{
"foo" => %{id: "foo", name: "Foo"},
"bar" => %{id: "bar", name: "Bar"}
}
query do
field :item, :item do
arg(:id, non_null(:id))
resolve(fn %{id: item_id}, _ ->
{:ok, @items[item_id]}
end)
end
end
end
Anyone knows what I’m doing wrong?
Marked As Solved
hubertlepicki
OK I generated the app again and did the set up steps and everything is working. I think I may have either generated app that’s too bare bones to work with Absinthe or made some other error along the way. It works now.
Also Liked
hubertlepicki
stevensonmt
How did you make the requests?
I’ve noticed sometimes that recompiling in an iex session (started with iex -S mix) is not effective. Have to end that session and start a new one for changes to be applied.
Last Post!
stevensonmt
How did you make the requests?
I’ve noticed sometimes that recompiling in an iex session (started with iex -S mix) is not effective. Have to end that session and start a new one for changes to be applied.
Popular in Questions
Other popular topics
Latest Phoenix Threads
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #elixirconf-us
- #advent-of-code
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #hex
- #security









