A behaviour for Caddy Admin requests.
@callback delete(path :: binary(), data :: binary(), content_type :: binary()) :: {:ok, Caddy.Admin.Request.t(), map() | binary()}
@callback get(path :: binary()) :: {:ok, Caddy.Admin.Request.t(), map() | binary()}
@callback patch(path :: binary(), data :: binary(), content_type :: binary()) :: {:ok, Caddy.Admin.Request.t(), map() | binary()}
@callback post(path :: binary(), data :: binary(), content_type :: binary()) :: {:ok, Caddy.Admin.Request.t(), map() | binary()}
@callback put(path :: binary(), data :: binary(), content_type :: binary()) :: {:ok, Caddy.Admin.Request.t(), map() | binary()}