AbstractRestClient

abstract class AbstractRestClient(val json: Json, val client: HttpClient, val baseUrl: String, val mapError: context(Raise<RestClientErrorSpec>) suspend HttpResponse.() -> RestClientErrorSpec)(source)

Represents an abstract REST client providing helper methods to perform HTTP operations such as GET, POST, PUT, PATCH, DELETE, HEAD, and OPTIONS. This class handles request execution, error transformation, and response deserialization.

Inheritors

Constructors

Link copied to clipboard
constructor(json: Json, client: HttpClient, baseUrl: String, mapError: context(Raise<RestClientErrorSpec>) suspend HttpResponse.() -> RestClientErrorSpec)

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard

The base URL used to construct full request URIs.

Link copied to clipboard
val client: HttpClient

The HttpClient responsible for executing HTTP requests.

Link copied to clipboard
val json: Json

The instance of Json for JSON serialization and deserialization.

Link copied to clipboard
val mapError: context(Raise<RestClientErrorSpec>) suspend HttpResponse.() -> RestClientErrorSpec

A function transforming an HttpResponse into a RestClientErrorSpec

Functions

Link copied to clipboard
context(_: Raise<RestClientErrorSpec>)
inline suspend fun <T> delete(uri: String, crossinline builder: HttpRequestBuilder.() -> Unit = {}): T
Link copied to clipboard
context(r: Raise<RestClientErrorSpec>)
inline suspend fun <T> get(uri: String, crossinline builder: HttpRequestBuilder.() -> Unit = {}): T
Link copied to clipboard
context(r: Raise<RestClientErrorSpec>)
inline suspend fun <T> head(uri: String, crossinline builder: HttpRequestBuilder.() -> Unit = {}): T
Link copied to clipboard
context(r: Raise<RestClientErrorSpec>)
inline suspend fun <T> options(uri: String, crossinline builder: HttpRequestBuilder.() -> Unit = {}): T
Link copied to clipboard
context(_: Raise<RestClientErrorSpec>)
inline suspend fun <T, B> patch(uri: String, body: B? = null, crossinline builder: HttpRequestBuilder.() -> Unit = {}): T
Link copied to clipboard
context(_: Raise<RestClientErrorSpec>)
inline suspend fun <T, B> post(uri: String, body: B, crossinline builder: HttpRequestBuilder.() -> Unit = {}): T
Link copied to clipboard
context(_: Raise<RestClientErrorSpec>)
inline suspend fun <T> postMultipart(uri: String, data: ByteArray, fileName: String = "file", contentType: ContentType = ContentType.Application.OctetStream, crossinline builder: HttpRequestBuilder.() -> Unit = {}): T
Link copied to clipboard
context(_: Raise<RestClientErrorSpec>)
inline suspend fun <T, B> put(uri: String, body: B? = null, crossinline builder: HttpRequestBuilder.() -> Unit = {}): T