¿Cómo usar types personalizados para los parameters de Retrofit @Query?
Dada la siguiente interfaz de Retrofit :
@GET("offices") fun getOffices(@Query("uid") uid: String, @Query("lat") latitude: Double, @Query("lon") longitude: Double ): Call<List<Office>>
¿Cómo puedo replace los parameters de location con un tipo de GeoLocation
más amigable para el usuario …
- ¿Cómo puedo usar RetroFit2 responseBodyConverter en Kotlin?
- reference no resuelta: callback
- Cómo llenar una vista de list usando Kotlin, retroadaptación y RXjava
- Confundido sobre la asignación de la variable RxJava
- El parámetro no tiene una coincidencia; SimpleXML
data class GeoLocation( val latitude: Double, val longitude: Double )
… que se convierte automáticamente en lat
y lon
a petición, como:
@GET("offices") fun getOffices(@Query("uid") uid: String, @Query("location") location: GeoLocation ): Call<List<Office>>
Aquí está la configuration de Retrofit:
fun createRetrofit(baseUrl: String, okHttpClient: OkHttpClient): Retrofit { val moshi = Moshi.Builder() .build() return Retrofit.Builder() .baseUrl(baseUrl) .addConverterFactory(MoshiConverterFactory.create(moshi)) .client(okHttpClient) .build() }
- ¿Lee el valor de la anotación de la function de Kotlin usando la reflexión?
- HttpLoggingInterceptor no inicia session con la actualización 2
- Problemas al analizar datos con RxJava + Kotlin
- Adaptar el cuerpo de la respuesta 2 a la class personalizada
- Retrofit se bloquea cuando lanzo una exception en un interceptor
- Adaptador personalizado de Moshi con RxAndroid & Retrofit & Kotlin
- Pass facebook AccessToken por Retrofit
- Actualizar el método de llamada de tipo genérico
Si le interesa el acceso amigable, puede crear una function de contenedor. De esta forma, no tiene que meterse con la configuration de Retrofit en absoluto
fun getOffices(uid: String, location: GeoLocation): Call<List<Office>> { return getOfficesIf(uid, location.lat, location.lon) } @GET("offices") fun getOfficesIf(@Query("uid") uid: String, @Query("lat") latitude: Double, @Query("lon") longitude: Double ): Call<List<Office>>
- ¿Cómo puedo crear un encabezado de columna nested / dividido usando TornadoFx?
- Declaración 'when' omitiendo una condición en Kotlin para Android