EntryEndpoint

Represents the top-level URI of an API. Derive from this open class and add your own set of child Endpoints as properties.

Constructors

Link copied to clipboard
constructor(uri: URI, httpClient: OkHttpClient, serializers: List<Serializer>, errorHandler: ErrorHandler = DefaultErrorHandler(), linkExtractor: LinkExtractor = AggregateLinkExtractor(HeaderLinkExtractor(), HalLinkExtractor()))

Creates a new entry endpoint.

constructor(uri: URI, httpClient: OkHttpClient, serializer: Serializer = KotlinxJsonSerializer(), errorHandler: ErrorHandler = DefaultErrorHandler(), linkExtractor: LinkExtractor = AggregateLinkExtractor(HeaderLinkExtractor(), HalLinkExtractor()))

Creates a new entry endpoint.

constructor(uri: URI, credentials: HttpCredentials? = null, serializer: Serializer = KotlinxJsonSerializer(), errorHandler: ErrorHandler = DefaultErrorHandler(), linkExtractor: LinkExtractor = AggregateLinkExtractor(HeaderLinkExtractor(), HalLinkExtractor()))

Creates a new entry endpoint.

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 readMeta()

Fetches metadata such as links from the server.

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.