Size: a a a

Kotlin Community

2020 August 21

QH

Quantum Harmonizer in Kotlin Community
Pavel Aleksandrov
По первому взгляду здоровская штука. Но нужно писать код с оглядкой на Kotlin Multiplatform для будущего порта большей части на iOS
угу.( надо, но мне пока некогда
источник

QH

Quantum Harmonizer in Kotlin Community
кому я вру, я же просто ленивая жопа
источник

с#

саша сок #KotlinGang... in Kotlin Community
Pavel Aleksandrov
Ребят, а есть какой-нибудь удобный способ для Ktor-Client сериализовать response в разные классы в зависимости от httpCode? Например, возвращать из запроса что-то вроде такого Result<Success, Error>? Нельзя сделать что-нибудь подобное по аналогии с CallFactory из Retrofit? Это, чтобы не оборачивать каждый запрос в try-catch.
а чем retrofit не подошёл
источник

с#

саша сок #KotlinGang... in Kotlin Community
api.getUser() await {
   success { user ->

   }
   error { serverError ->

   }
   fail { throwable ->
       
   }
}
источник

с#

саша сок #KotlinGang... in Kotlin Community
я такое дсл написал для него, но можно и для ktor client сделать также
источник

PA

Pavel Aleksandrov in Kotlin Community
саша сок #KotlinGang
а чем retrofit не подошёл
Он прекрасен особенно с той маленькой либой, которую кинул. Но в будущем придется писать ещё и iOS. А так как я один, то очень хочется заюзать Multiplatform
источник

с#

саша сок #KotlinGang... in Kotlin Community
Pavel Aleksandrov
Ребят, а есть какой-нибудь удобный способ для Ktor-Client сериализовать response в разные классы в зависимости от httpCode? Например, возвращать из запроса что-то вроде такого Result<Success, Error>? Нельзя сделать что-нибудь подобное по аналогии с CallFactory из Retrofit? Это, чтобы не оборачивать каждый запрос в try-catch.
можно свою функцию-расширение написать которая также делать будет
источник

PA

Pavel Aleksandrov in Kotlin Community
саша сок #KotlinGang
можно свою функцию-расширение написать которая также делать будет
Вот примерно так и хотел. Думал мб уже есть встроенный компонент как в Retrofit для написания таких вещей
источник

с#

саша сок #KotlinGang... in Kotlin Community
а, ну тогда успехов Вам, я лично не видел, может кто подскажет
источник

с#

саша сок #KotlinGang... in Kotlin Community
у меня вообще идейка была ktor based multiplatform retrofit написать
источник

с#

саша сок #KotlinGang... in Kotlin Community
чтобы везде можно было юзать
источник

PA

Pavel Aleksandrov in Kotlin Community
саша сок #KotlinGang
у меня вообще идейка была ktor based multiplatform retrofit написать
А зачем? Ktor итак позволяет это. Только не через аннотации, а через DSL
источник

с#

саша сок #KotlinGang... in Kotlin Community
Pavel Aleksandrov
А зачем? Ktor итак позволяет это. Только не через аннотации, а через DSL
ну оно построит мне интерфейс ?
источник

PA

Pavel Aleksandrov in Kotlin Community
саша сок #KotlinGang
ну оно построит мне интерфейс ?
Сделай интерфейс и отдельную имплементацию. Да, чуть больше кода, но итог тот же. И там, и там не нужно писать network specific кода
источник

с#

саша сок #KotlinGang... in Kotlin Community
ну хорошо
источник

PA

Pavel Aleksandrov in Kotlin Community
саша сок #KotlinGang
ну оно построит мне интерфейс ?
В GitFox клиенте как раз есть коммит с подобной миграцией Retrofit->Ktor
источник

с#

саша сок #KotlinGang... in Kotlin Community
ок
источник

BP

Bogdan Panchenko in Kotlin Community
Pavel Aleksandrov
Ребят, а есть какой-нибудь удобный способ для Ktor-Client сериализовать response в разные классы в зависимости от httpCode? Например, возвращать из запроса что-то вроде такого Result<Success, Error>? Нельзя сделать что-нибудь подобное по аналогии с CallFactory из Retrofit? Это, чтобы не оборачивать каждый запрос в try-catch.
собственый сайлед класс,либо чекать код ответа
источник

PA

Pavel Aleksandrov in Kotlin Community
Bogdan Panchenko
собственый сайлед класс,либо чекать код ответа
А мб есть механизм обработки запроса до автоматической сериализации через указанный сериализатор? По идее туда как раз можно было бы впихнуть свою Result обёртку
источник

BP

Bogdan Panchenko in Kotlin Community
Pavel Aleksandrov
А мб есть механизм обработки запроса до автоматической сериализации через указанный сериализатор? По идее туда как раз можно было бы впихнуть свою Result обёртку
смотря какой серелизатор, ну впихнуть можно все что угодно, но на принимающей стороне нужно обработать.

котлин серелизация + сайлде класс самый топовый вариант автоматизма и передачи разных сущностей
источник