lib/client.ex

defmodule Storyblok.Client do
  @callback execute(url :: binary(), query :: keyword(), opts :: keyword()) ::
              {:ok, %{status: pos_integer(), headers: keyword(), body: any(), client_opts: any()}}
              | {:error, any}

  def execute(url, query, opts \\ []), do: client().execute(url, query, opts)

  defp client, do: Application.get_env(:storyblok, :client, Storyblok.ReqClient)
end