# `Tinkex.HTTPClient`
[🔗](https://github.com/North-Shore-AI/tinkex/blob/v0.4.0/lib/tinkex/http_client.ex#L1)

Behaviour for HTTP client implementations.

This indirection lets tests or host applications swap out the HTTP layer when
needed. The default implementation is `Tinkex.API`.

# `delete`

```elixir
@callback delete(path :: String.t(), opts :: keyword()) ::
  {:ok, map()} | {:error, Tinkex.Error.t()}
```

# `get`

```elixir
@callback get(path :: String.t(), opts :: keyword()) ::
  {:ok, map()} | {:error, Tinkex.Error.t()}
```

# `post`

```elixir
@callback post(path :: String.t(), body :: map(), opts :: keyword()) ::
  {:ok, map()} | {:error, Tinkex.Error.t()}
```

# `put`

```elixir
@callback put(path :: String.t(), body :: map(), opts :: keyword()) ::
  {:ok, map()} | {:error, Tinkex.Error.t()}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
