Retrofit integration
Helios has a Retrofit integration adding Helios to the list of available converters
.
Dependency
To start using Helios on a Retrofit project just add the following dependency:
"com.47deg:helios-integration-retrofit:0.2.0"
Usage
The integration provides an implementation of a Retrofit Converter.Factory
called HeliosConverterFactory
.
This converter is constructed using the create
function
which needs a list of the classes
and the class Encoder
and Decoder
.
Example
Let’s look at an example of how to add the Helios’ Retrofit integration.
First of all, we need a model for our example:
@json
data class Person(val name: String, val age: Int) {
companion object
}
The @json
will automatically generate the Encoder
and Decoder
for the Person
model so
we can use it directly on our Retrofit.Builder
:
import arrow.core.*
import helios.*
import helios.core.*
import helios.typeclasses.*
import helios.retrofit.HeliosConverterFactory
import helios.retrofit.JsonableEvidence
import retrofit2.Retrofit
//sampleStart
fun getRetrofit(): Retrofit = Retrofit.Builder()
.addConverterFactory(HeliosConverterFactory.create(
JsonableEvidence(Person::class, Person.encoder(), Person.decoder())
))
.baseUrl("https://api.github.com/")
.build()
//sampleEnd
There is also an example project available here.