HttpClient

infrastructure.http.HttpClient
See theHttpClient companion object
class HttpClient[F[_]](client: Client[F], baseUri: Uri)(implicit evidence$1: Async[F]) extends Http4sClientDsl[F]

A generic HTTP client for making RESTful API requests.

This client provides methods for performing standard HTTP operations (GET, POST, PUT, DELETE) and supports JSON encoding/decoding using Circe. Requests are constructed relative to the specified base URI, and responses are returned as effectful computations in the specified effect type.

Type parameters

F

The effect type (e.g., IO, Future, etc.) that supports asynchronous and concurrent computations.

Value parameters

baseUri

The base URI for all API requests made by this client.

client

The underlying HTTP client instance used to send requests and receive responses.

Attributes

Companion
object
Source
HttpClient.scala
Graph
Supertypes
trait Http4sClientDsl[F]
class Object
trait Matchable
class Any

Members list

Value members

Concrete methods

def decodeResponse[T : Decoder](response: String): F[T]

Decodes a JSON response into a specified type.

Decodes a JSON response into a specified type.

Attempts to decode the JSON string into the specified type using Circe. If decoding fails, this method raises an error with the failure details.

Type parameters

T

The type to decode into, which must have an implicit Circe Decoder instance.

Value parameters

response

The response body as a JSON string.

Attributes

Returns

An effectful computation that yields the decoded value of type T.

Source
HttpClient.scala
def delete(endpoint: Path): F[String]

Sends an HTTP DELETE request.

Sends an HTTP DELETE request.

Constructs a DELETE request relative to the base URI and sends it to the specified endpoint.

Value parameters

endpoint

The URI path of the endpoint to delete.

Attributes

Returns

An effectful computation that yields the response body as a string.

Source
HttpClient.scala
def get(endpoint: Path): F[String]

Sends an HTTP GET request.

Sends an HTTP GET request.

Constructs a GET request relative to the base URI and sends it to the specified endpoint.

Value parameters

endpoint

The URI path of the endpoint to query.

Attributes

Returns

An effectful computation that yields the response body as a string.

Source
HttpClient.scala
def post[T : Encoder](endpoint: Path, payload: T): F[String]

Sends an HTTP POST request with a JSON payload.

Sends an HTTP POST request with a JSON payload.

Constructs a POST request relative to the base URI and sends it to the specified endpoint. The payload is serialised to JSON using Circe.

Type parameters

T

The type of the payload, which must have an implicit Circe Encoder instance.

Value parameters

endpoint

The URI path of the endpoint to send the request to.

payload

The JSON payload to include in the request body.

Attributes

Returns

An effectful computation that yields the response body as a string.

Source
HttpClient.scala
def put[T : Encoder](endpoint: Path, payload: T): F[String]

Sends an HTTP PUT request with a JSON payload.

Sends an HTTP PUT request with a JSON payload.

Constructs a PUT request relative to the base URI and sends it to the specified endpoint. The payload is serialised to JSON using Circe.

Type parameters

T

The type of the payload, which must have an implicit Circe Encoder instance.

Value parameters

endpoint

The URI path of the endpoint to send the request to.

payload

The JSON payload to include in the request body.

Attributes

Returns

An effectful computation that yields the response body as a string.

Source
HttpClient.scala

Implicits

Inherited implicits

Attributes

Inherited from:
Http4sClientDsl
Source
Http4sClientDsl.scala
implicit def http4sHeadersDecoder[T](implicit F: Applicative[F], decoder: EntityDecoder[F, T]): EntityDecoder[F, (Headers, T)]

Attributes

Inherited from:
Http4sClientDsl
Source
Http4sClientDsl.scala