# `AccessGrid.HttpClient`
[🔗](https://github.com/Access-Grid/accessgrid-ex/blob/main/lib/access_grid/http_client.ex#L1)

HTTP client dispatcher.

Delegates to the configured HTTP client implementation (default: `AccessGrid.HttpClient.Req`).
The implementation can be configured via application config or overridden per-process
using Gestalt for testing.

# `delete`

```elixir
@spec delete(String.t(), map()) ::
  {:ok, AccessGrid.HttpResponse.t()} | {:error, AccessGrid.HttpFailure.t()}
```

Performs an HTTP DELETE request.

# `get`

```elixir
@spec get(String.t(), map()) ::
  {:ok, AccessGrid.HttpResponse.t()} | {:error, AccessGrid.HttpFailure.t()}
```

Performs an HTTP GET request.

# `head`

```elixir
@spec head(String.t(), map()) ::
  {:ok, AccessGrid.HttpResponse.t()} | {:error, AccessGrid.HttpFailure.t()}
```

Performs an HTTP HEAD request.

# `patch`

```elixir
@spec patch(String.t(), map()) ::
  {:ok, AccessGrid.HttpResponse.t()} | {:error, AccessGrid.HttpFailure.t()}
```

Performs an HTTP PATCH request.

# `post`

```elixir
@spec post(String.t(), map()) ::
  {:ok, AccessGrid.HttpResponse.t()} | {:error, AccessGrid.HttpFailure.t()}
```

Performs an HTTP POST request.

# `put`

```elixir
@spec put(String.t(), map()) ::
  {:ok, AccessGrid.HttpResponse.t()} | {:error, AccessGrid.HttpFailure.t()}
```

Performs an HTTP PUT request.

---

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