Size: a a a

Kotlin Community

2020 August 21

PA

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

котлин серелизация + сайлде класс самый топовый вариант автоматизма и передачи разных сущностей
Как раз давно перешёл чисто на kotlinx.serialization. То есть ты предлагаешь просто сделать sealed class с различными вариантами ответа и так обрабатывать каждый запрос?
источник

PA

Pavel Aleksandrov in Kotlin Community
Или это можно каким-то образом обрабатывать на более низком уровне?
источник

BP

Bogdan Panchenko in Kotlin Community
Pavel Aleksandrov
Как раз давно перешёл чисто на kotlinx.serialization. То есть ты предлагаешь просто сделать sealed class с различными вариантами ответа и так обрабатывать каждый запрос?
ну да, ибо проверят статус код и исходя подставлять нужный тип, либо сайлед класс.

Либо ручками все через текст
источник

BP

Bogdan Panchenko in Kotlin Community
Pavel Aleksandrov
Или это можно каким-то образом обрабатывать на более низком уровне?
что подразумевается под "обрабатывать на более низком уровне?"
источник

BP

Bogdan Panchenko in Kotlin Community
я кстати не уверен может ли автоматическая серелизация ктора справится с сайлед классом
источник

AY

Andy Yanechko in Kotlin Community
Есть вопрос по корутинам: почему в этом коде некоторые строки вывода пропущены (в реальности пример по сложнее, но идея такая же). Это stateFlow не успевает колектиться?
https://pastebin.com/d8H24NYU

P.S. вопрос снят, разобрался)
источник

BP

Bogdan Panchenko in Kotlin Community
но call.responseTest(jsonParser.stringfy(sealedClass)) вполне работает
источник

PA

Pavel Aleksandrov in Kotlin Community
Bogdan Panchenko
что подразумевается под "обрабатывать на более низком уровне?"
Сделать этот sealed class возвращаемым типом для запроса. Что-то вроде Result<Success, Error>. Где Success – модель, которая будет сериализована при httpCode >= 200, а Error – при httpCode >= 400. В остальных случаях вернётся другая ошибки с телом исключения (например, нет сети/сервер не доступен или ошибка сериализации).
источник

PA

Pavel Aleksandrov in Kotlin Community
Bogdan Panchenko
но call.responseTest(jsonParser.stringfy(sealedClass)) вполне работает
Возьму на вооружение)
источник

BP

Bogdan Panchenko in Kotlin Community
Pavel Aleksandrov
Возьму на вооружение)
я в итоге к этому и пришел, автоматическая серелизация ктора - говно
источник

с#

саша сок #KotlinGang... in Kotlin Community
Bogdan Panchenko
я в итоге к этому и пришел, автоматическая серелизация ктора - говно
потому что он мультиплатформ
источник

BP

Bogdan Panchenko in Kotlin Community
саша сок #KotlinGang
потому что он мультиплатформ
нет
источник

с#

саша сок #KotlinGang... in Kotlin Community
а в си нет рефлексии и там автоматом не сериализуешь
источник

BP

Bogdan Panchenko in Kotlin Community
клиент еще да, можно так сказать, а сервер нифига
источник

с#

саша сок #KotlinGang... in Kotlin Community
а ну на сервере мб)
источник

с#

саша сок #KotlinGang... in Kotlin Community
я юзаю нн либу которая ктор со сваггером совмещает
источник

с#

саша сок #KotlinGang... in Kotlin Community
и там строго типизированное апи получается, которое само всё сериализует
источник

BP

Bogdan Panchenko in Kotlin Community
саша сок #KotlinGang
а в си нет рефлексии и там автоматом не сериализуешь
нет, потому что там response принимает Any,  и когда у тебя идут дженерики начинается боль
источник

AN

Alexander Nozik in Kotlin Community
саша сок #KotlinGang
а в си нет рефлексии и там автоматом не сериализуешь
А если найду :) Могу в @pofftop показать
источник

с#

саша сок #KotlinGang... in Kotlin Community
Alexander Nozik
А если найду :) Могу в @pofftop показать
ахаххаха ну так писали)
источник