mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-12-09 10:56:10 +00:00
[kotlin][client] add support for unknown default case with Kotlinx Serialization (#12930)
* [kotlin][client] Kotlinx Serialization cleanup * [kotlin][client] Kotlinx Serialization cleanup * [kotlin][client] add support for unknown default case with Kotlinx Serialization * [kotlin][client] add support for unknown default case with Kotlinx Serialization * [kotlin][client] add support for unknown default case with Kotlinx Serialization * [kotlin][client] improve Kotlinx Serialization naming * [kotlin][client] improve Kotlinx Serialization naming
This commit is contained in:
@@ -16,7 +16,7 @@ import retrofit2.Converter
|
||||
import retrofit2.converter.scalars.ScalarsConverterFactory
|
||||
|
||||
import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory
|
||||
import org.openapitools.client.infrastructure.Serializer.jvmJson
|
||||
import org.openapitools.client.infrastructure.Serializer.kotlinxSerializationJson
|
||||
import okhttp3.MediaType.Companion.toMediaType
|
||||
|
||||
class ApiClient(
|
||||
@@ -32,7 +32,7 @@ class ApiClient(
|
||||
Retrofit.Builder()
|
||||
.baseUrl(baseUrl)
|
||||
.addConverterFactory(ScalarsConverterFactory.create())
|
||||
.addConverterFactory(jvmJson.asConverterFactory("application/json".toMediaType()))
|
||||
.addConverterFactory(kotlinxSerializationJson.asConverterFactory("application/json".toMediaType()))
|
||||
.apply {
|
||||
if (converterFactory != null) {
|
||||
addConverterFactory(converterFactory)
|
||||
|
||||
@@ -15,8 +15,13 @@ import java.util.concurrent.atomic.AtomicInteger
|
||||
import java.util.concurrent.atomic.AtomicLong
|
||||
|
||||
object Serializer {
|
||||
@Deprecated("Use Serializer.kotlinxSerializationAdapters instead", replaceWith = ReplaceWith("Serializer.kotlinxSerializationAdapters"))
|
||||
@JvmStatic
|
||||
val kotlinSerializationAdapters = SerializersModule {
|
||||
val kotlinSerializationAdapters: SerializersModule
|
||||
get() { return kotlinxSerializationAdapters }
|
||||
|
||||
@JvmStatic
|
||||
val kotlinxSerializationAdapters = SerializersModule {
|
||||
contextual(BigDecimal::class, BigDecimalAdapter)
|
||||
contextual(BigInteger::class, BigIntegerAdapter)
|
||||
contextual(LocalDate::class, LocalDateAdapter)
|
||||
@@ -31,6 +36,17 @@ object Serializer {
|
||||
contextual(StringBuilder::class, StringBuilderAdapter)
|
||||
}
|
||||
|
||||
@Deprecated("Use Serializer.kotlinxSerializationJson instead", replaceWith = ReplaceWith("Serializer.kotlinxSerializationJson"))
|
||||
@JvmStatic
|
||||
val jvmJson: Json by lazy { Json { serializersModule = kotlinSerializationAdapters } }
|
||||
val jvmJson: Json
|
||||
get() { return kotlinxSerializationJson }
|
||||
|
||||
@JvmStatic
|
||||
val kotlinxSerializationJson: Json by lazy {
|
||||
Json {
|
||||
serializersModule = kotlinxSerializationAdapters
|
||||
ignoreUnknownKeys = true
|
||||
isLenient = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user