Your first function head is matching all Gets requests. This is how Elixir does pattern matching,
Nothing really Raxx specific, apart from the fact it gives you the data structure.
If you don’t specify a path it will match on all, try this instead.
Try
@impl Raxx.SimpleServer
def handle_request(_request = %{method: :GET: path: []}, _state) do
response(:ok)
|> API.set_json_payload(%{path: "root"})
end