AbstractEndpoint

abstract class AbstractEndpoint(val uri: URI, val httpClient: OkHttpClient, val serializers: List<Serializer>, val errorHandler: ErrorHandler, val linkExtractor: LinkExtractor) : Endpoint

Base class for building endpoints, i.e., remote HTTP resources.

Parameters

uri

The HTTP URI of the remote element.

httpClient

The HTTP client used to communicate with the remote element.

serializers

A list of serializers used for entities received from the server, sorted from most to least preferred. Always uses first for sending to the server.

errorHandler

Handles errors in HTTP responses.

linkExtractor

Detects links in HTTP responses.

Inheritors

Constructors

Link copied to clipboard
constructor(uri: URI, httpClient: OkHttpClient, serializers: List<Serializer>, errorHandler: ErrorHandler, linkExtractor: LinkExtractor)
constructor(referrer: Endpoint, relativeUri: URI)

Creates a new endpoint with a relative URI.

Properties

Link copied to clipboard
open override val errorHandler: ErrorHandler
Link copied to clipboard
open override val httpClient: OkHttpClient
Link copied to clipboard
open override val linkExtractor: LinkExtractor
Link copied to clipboard
open override val serializers: List<Serializer>
Link copied to clipboard
open override val uri: URI

Functions

Link copied to clipboard
fun <T> deserialize(body: ResponseBody, type: Class<T>): T?

Deserializes an entity using the first serializer that supports the body's content type.

Link copied to clipboard
fun <T> deserializeList(body: ResponseBody, type: Class<T>): List<T>?

Deserializes a list of entities using the first serializer that supports the body's content type.

Link copied to clipboard
open override fun getLinks(rel: String): List<Pair<URI, String?>>

Resolves all links with a specific relation type. Uses cached data from last response.

Link copied to clipboard
fun getLinkTemplate(rel: String): UriTemplate

Retrieves a link template with a specific relation type.

Link copied to clipboard
open override fun link(rel: String): URI

Resolves a single link with a specific relation type. Uses cached data from last response if possible.

Link copied to clipboard
open override fun linkTemplate(rel: String, variables: Map<String, Any>): URI

Resolves a link template with a specific relation type. Uses cached data from last response if possible.

Link copied to clipboard
fun <T> serialize(entity: T, type: Class<T>): RequestBody

Serializes an entity using the first serializer.

Link copied to clipboard
fun <T> serializeList(entities: Iterable<T>, type: Class<T>): RequestBody

Serializes a list of entities using the first serializer.

Link copied to clipboard
fun setDefaultLink(rel: String, href: String?)

Registers one or more default links for a specific relation type.

Link copied to clipboard

Registers a default link template for a specific relation type.