Я использую Kotlin с модернизацией в моем проекте.
Я в основном пытаюсь сделать что-то очень простое.
Имея метод, вызовите интерфейс модернизации, который будет получать информацию из другого API,К сожалению, этот API отвечает на разные типы объектов с одной и той же конечной точки (в зависимости от ввода и результатов), поэтому я смог отобразить ответ и работал нормально.
Теперь я пытаюсь избежать сопоставления с конкретной модельюи вместо этого, просто верните необработанный ответ и выведите его на моем сервисе как вывод Json.
Итак, я сделал это:
В моем сервисе
val response = userService.getUser(request).await()
UserService:
fun getUser(request: User) = client.getInfo(// some parameters )
Затем на моем клиенте (дооснащение) я сделал это:
@GET("/api/v1/user/{}")
fun getInfo( // some paramters
): Deferred<ResponseBody>
Каждый раз, когда я использую ResponseBody, я получаю пустой результат
Каждый раз, когда я использую Deferred<Response<MySpecificObject>>
Я получаю правильный Объект, полный информации.Я хочу избежать этого в данный момент.
Моя модернизация настроена следующим образом:
return Retrofit.Builder()
.baseUrl(baseUrl)
.addCallAdapterFactory(CoroutineCallAdapterFactory()) .addConverterFactory(GsonConverterFactory.create())
.client(okHttpClient)
.build()
.create()
В моей конфигурации dropwizard я добавил это:
bootstrap.objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
bootstrap.objectMapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS)
Любая идея, еслиэто возможно?