Client-side typesafe Spine schema usage • opensavvy.spine.client
Package-level declarations¶
Types¶
SpineReceptionException¶
class SpineReceptionException(val response: HttpResponse, body: String) : RuntimeException
SpineResponse¶
class SpineResponse<Out : Any, out Failure : FailureSpec>(val httpResponse: HttpResponse, val failureSpec: Failure)
Functions¶
bodyOrNull¶
inline suspend fun <Out : Any> SpineResponse<Out, *>.bodyOrNull(): Out?
bodyOrThrow¶
inline suspend fun <Out : Any> SpineResponse<Out, *>.bodyOrThrow(): Out
handle¶
inline suspend fun <Out : Any, O, F1, F2, F3, F4> SpineResponse<Out, FailureSpec.Or<FailureSpec.Or<FailureSpec.Or<FailureSpec.Or<FailureSpec.Never, FailureSpec.ByCode<F1>>, FailureSpec.ByCode<F2>>, FailureSpec.ByCode<F3>>, FailureSpec.ByCode<F4>>>.handle(handle1: (F1) -> O, handle2: (F2) -> O, handle3: (F3) -> O, handle4: (F4) -> O, transform: (Out) -> O): O
inline suspend fun <Out : Any, O, F1, F2, F3, F4, F5> SpineResponse<Out, FailureSpec.Or<FailureSpec.Or<FailureSpec.Or<FailureSpec.Or<FailureSpec.Or<FailureSpec.Never, FailureSpec.ByCode<F1>>, FailureSpec.ByCode<F2>>, FailureSpec.ByCode<F3>>, FailureSpec.ByCode<F4>>, FailureSpec.ByCode<F5>>>.handle(handle1: (F1) -> O, handle2: (F2) -> O, handle3: (F3) -> O, handle4: (F4) -> O, handle5: (F5) -> O, transform: (Out) -> O): O
inline suspend fun <Out : Any, O, F1, F2, F3, F4, F5, F6> SpineResponse<Out, FailureSpec.Or<FailureSpec.Or<FailureSpec.Or<FailureSpec.Or<FailureSpec.Or<FailureSpec.Or<FailureSpec.Never, FailureSpec.ByCode<F1>>, FailureSpec.ByCode<F2>>, FailureSpec.ByCode<F3>>, FailureSpec.ByCode<F4>>, FailureSpec.ByCode<F5>>, FailureSpec.ByCode<F6>>>.handle(handle1: (F1) -> O, handle2: (F2) -> O, handle3: (F3) -> O, handle4: (F4) -> O, handle5: (F5) -> O, handle6: (F6) -> O, transform: (Out) -> O): O
request¶
inline suspend fun <In : Any, Out : Any, Failure : FailureSpec> HttpClient.request(endpoint: ResolvedEndpoint<Endpoint<In, Out, Failure, Parameters.Empty>>, input: In, contentType: ContentType = ContentType.Application.Json, crossinline configure: HttpRequestBuilder.() -> Unit = {}): SpineResponse<Out, Failure>
inline suspend fun <Out : Any, Failure : FailureSpec, Params : Parameters> HttpClient.request(endpoint: ResolvedEndpoint<Endpoint<Unit, Out, Failure, Params>>, crossinline parameters: Params.() -> Unit, contentType: ContentType = ContentType.Application.Json, crossinline configure: HttpRequestBuilder.() -> Unit = {}): SpineResponse<Out, Failure>
inline suspend fun <In : Any, Out : Any, Failure : FailureSpec, Params : Parameters> HttpClient.request(endpoint: ResolvedEndpoint<Endpoint<In, Out, Failure, Params>>, input: In, crossinline parameters: Params.() -> Unit, contentType: ContentType = ContentType.Application.Json, crossinline configure: HttpRequestBuilder.() -> Unit = {}): SpineResponse<Out, Failure>