mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-14 22:17:03 +05:30
all: allow unknown keys in responses
This commit is contained in:
parent
b5c2dc9aaf
commit
6eb3acff78
3 changed files with 12 additions and 3 deletions
|
@ -38,12 +38,13 @@ object ApiModule {
|
||||||
@Provides
|
@Provides
|
||||||
fun provideRetrofit(
|
fun provideRetrofit(
|
||||||
client: Lazy<OkHttpClient>,
|
client: Lazy<OkHttpClient>,
|
||||||
|
json: Lazy<Json>,
|
||||||
): Retrofit {
|
): Retrofit {
|
||||||
val contentType = "application/json".toMediaType()
|
val contentType = "application/json".toMediaType()
|
||||||
return Retrofit.Builder()
|
return Retrofit.Builder()
|
||||||
.client(client.get())
|
.client(client.get())
|
||||||
.baseUrl(LobstersApi.BASE_URL)
|
.baseUrl(LobstersApi.BASE_URL)
|
||||||
.addConverterFactory(Json.asConverterFactory(contentType))
|
.addConverterFactory(json.get().asConverterFactory(contentType))
|
||||||
.build()
|
.build()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -51,4 +52,9 @@ object ApiModule {
|
||||||
fun provideApi(retrofit: Retrofit): LobstersApi {
|
fun provideApi(retrofit: Retrofit): LobstersApi {
|
||||||
return retrofit.create()
|
return retrofit.create()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
fun provideJsonSerializer(): Json {
|
||||||
|
return Json { ignoreUnknownKeys = true }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,11 +27,12 @@ class LobstersApiTest {
|
||||||
private val contentType = "application/json".toMediaType()
|
private val contentType = "application/json".toMediaType()
|
||||||
private val webServer = MockWebServer()
|
private val webServer = MockWebServer()
|
||||||
private val okHttp = OkHttpClient.Builder().build()
|
private val okHttp = OkHttpClient.Builder().build()
|
||||||
|
private val json = Json { ignoreUnknownKeys = true }
|
||||||
private val retrofit =
|
private val retrofit =
|
||||||
Retrofit.Builder()
|
Retrofit.Builder()
|
||||||
.client(okHttp)
|
.client(okHttp)
|
||||||
.baseUrl("http://localhost:8080/")
|
.baseUrl("http://localhost:8080/")
|
||||||
.addConverterFactory(Json.asConverterFactory(contentType))
|
.addConverterFactory(json.asConverterFactory(contentType))
|
||||||
.build()
|
.build()
|
||||||
private val apiClient = retrofit.create<LobstersApi>()
|
private val apiClient = retrofit.create<LobstersApi>()
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,8 @@ import retrofit2.create
|
||||||
|
|
||||||
@OptIn(ExperimentalSerializationApi::class)
|
@OptIn(ExperimentalSerializationApi::class)
|
||||||
class Api {
|
class Api {
|
||||||
|
private val json = Json { ignoreUnknownKeys = true }
|
||||||
|
|
||||||
private fun getOkHttpClient(): OkHttpClient {
|
private fun getOkHttpClient(): OkHttpClient {
|
||||||
return OkHttpClient.Builder()
|
return OkHttpClient.Builder()
|
||||||
.addNetworkInterceptor { chain ->
|
.addNetworkInterceptor { chain ->
|
||||||
|
@ -26,7 +28,7 @@ class Api {
|
||||||
return Retrofit.Builder()
|
return Retrofit.Builder()
|
||||||
.client(okHttpClient)
|
.client(okHttpClient)
|
||||||
.baseUrl(LobstersApi.BASE_URL)
|
.baseUrl(LobstersApi.BASE_URL)
|
||||||
.addConverterFactory(Json.asConverterFactory(contentType))
|
.addConverterFactory(json.asConverterFactory(contentType))
|
||||||
.build()
|
.build()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue