🇺🇦
🇺🇦
Случайно скрыл некоторые альбомы. Где и как их "показать" обратно?
Кирилл
https://youtu.be/t34AQlblSeE?t=27m56s
Спасибо! Посмотрю
Mike
что это такое и какое отношение имеет к разработке под андроид?
.
Просто забавно, вы считаете пхп-стайл подход единственно правильным, го при этом, все ваши аргументы сводятся к таким не конструктивным фразам, как "зачем месить", "велосипедить", либо использованию нерелевантных терминов
Аргумент очень простой. Путь - это путь, параметры запроса - это параметры запроса, заголовки - это заголовки, и коды ошибок - это коды ошибок. Если на сервере ошибки не возникло, или она предусмотренная и обрабатываемая, то за каким рожном на уровне ЗАПРОСА её возвращать. Заверни в ответ.
🇺🇦
что это такое и какое отношение имеет к разработке под андроид?
Я уже нагуглил немало, не знаю у кого ещё спросить
Mike
Короче, путь — это путь, заголовки — это заголовки, а вот ошибки — это ошибки.
.
Тебе БД вместо пустого сета ошибку что ли выдаёт?
.
Нет, не выдает. Выдает пустой результат.
Mike
Первое - не ошибка. Второе - ошибка.
Если запрашиваешь список, то не ошибка. Если запрашиваешь одну сущность по айди, то ошибка и формат ответа удовлетворить невозможно.
Mike
Тебе БД вместо пустого сета ошибку что ли выдаёт?
Сама БД вообще байтики в сокет пишет. Всё зависит от драйвера и обёрток над ним.
.
Если запрашиваешь список, то не ошибка. Если запрашиваешь одну сущность по айди, то ошибка и формат ответа удовлетворить невозможно.
Вот и ответ тебе на вопрос. Если формат ответа удовлетворить невозможно, то тут два подхода, и, судя по количеству апологетов, буду считать, что оба жизнеспособны. Первый - это сделать так, чтобы удовлетворял, а второй - плюнуть ошибкой на уровне, по моему мнению для того не предназначенном.
Vladimir
Мне сейчас от Бека на логин приходит что то вроде { status : ok, token : .... } Вот вряд ли этот вариант жизнеспособен ) Точнее он есть и работает, но это ли не ублюдство?
.
сделать, чтобы удовлетворял — это выдать пользователя с пустым именем и минус одним другом?)
Нет, предусмотреть некое сообщение и код ошибки в базовом формате ответа.
Anonymous
Да успокойтесь вы уже, каждый др*чет так как хочет. в REST API указываются http коды, а в JSON RPC например вообще при любом раскладе отдает 200 код, а в теле кастомные номера ошибок.
Mike
Нет, предусмотреть некое сообщение и код ошибки в базовом формате ответа.
HTTP уже предусмотрел, но тебя опять тянет велосипедить
Valentin
Это что то вроде Result Success<T> Error ?
В этом треде имелась ввиду ситуация, тогда ответ приходит завёрнутый в объекте и на верхнем уровне может находиться какая-то метадата. В таких случае, можно сделать Result<T> { metadata: Metadata, body: T } А дальше, если не хотите видеть Result<T> в каждой сигнатуре в сервисе - то можно сделать type converter
.
HTTP уже предусмотрел, но тебя опять тянет велосипедить
Наоборот, не велосипедить, а отсечь ненужное. Ну нафига делать два кода ошибок в ответе, например? Одна ХТТП, вторая - что конкретно не так и что с этим можно сделать. И обрабатывать body ответа об ошибке.
.
ну оборачивайте все свичкейсами в три уровня, нет проблем.
.
Мне это усложнение абсолютно не нужно.
Valentin
ну оборачивайте все свичкейсами в три уровня, нет проблем.
Так у вас тоже будет этот свич кейс, так как вы же сами говорили про "ошибки сервиса", для которых уже нужно смотреть на код
.
Так у вас тоже будет этот свич кейс, так как вы же сами говорили про "ошибки сервиса", для которых уже нужно смотреть на код
у меня это будет иф-элс в единственном экземпляре, и на уровне обработки ответа определенные действия в зависимости от внутреннего кода ошибки.
.
если 200 то прокидываем, если чё-то ещё - облом
Valentin
Вы осуждаете подход, даже не зная, как он работает
.
Вы осуждаете подход, даже не зная, как он работает
окей, без сарказма, расскажи как, может я и правда чего не знаю.
Кирилл
Как правильно называются классы которые в поле другого класса? inner? Мне прогуард ломает тут, не знаю как правильно прогуглить
Valentin
окей, без сарказма, расскажи как, может я и правда чего не знаю.
Ретрофит по дефолту на все кроме 2хх кидает экспкшн
Valentin
Как самый простой вариант
Valentin
не правда
Ой, соре
Valentin
На все не 2хх
Anonymous
опять не правда
.
:D
Mike
опять не правда
может, развёрнуто пояснишь?)
Anonymous
может, развёрнуто пояснишь?)
в ретрофит нужно проверять через isSuccessful хттп код
Anonymous
насколько я знаю
.
https://square.github.io/okhttp/4.x/okhttp/okhttp3/-response/is-successful/
.
опа
.
по коду! 👏
.
И ваще если список запрашиваешь, то, уж извините меня, totalCount и currentPage это обязательно. Предположим, у вас там список со скроллом, а в БД пятьсот тысяч значений. Ну мотни вниз, чо, андроиду-то памяти хватит на это говно? Или будем БД вкручивать, подзасрем одним экраном всю флешку?
Vladimir
.
path segments!
.
всё в урлах лежит. каеф.
Vladimir
Ну ладно тогда, зря я ржал с Бека и говорил, что он жопорук
Mike
супернеудобно, что нужно из ответа повыковыривать урлы, прежде чем сходить на них
Vladimir
супернеудобно, что нужно из ответа повыковыривать урлы, прежде чем сходить на них
Дело в том, что урлы то и не нужны совсем Ты знаешь на какой ты странице, ты знаешь сколько их всего Зачем остальное - я без понятия
Line'R
Этого что мало? Не пойму что ему не нравится то
Mike
Этого что мало? Не пойму что ему не нравится то
не из того parent'а удаляешь, видать
.
Этого что мало? Не пойму что ему не нравится то
ты чё сделать хочешь? ты зачем при бинде пытаешься вьюху удалить? мож не показывать её вообще?
Valentin
Дело в том, что урлы то и не нужны совсем Ты знаешь на какой ты странице, ты знаешь сколько их всего Зачем остальное - я без понятия
Остальное - для пагинации в стиле "нажми на номер страницы, чтобы перейти". Там как раз есть кнопки последней и первой страницы обычно
Valentin
Но это больше паттерн для веба, да и то, уходящий в небытие постепенно
Vladimir
Остальное - для пагинации в стиле "нажми на номер страницы, чтобы перейти". Там как раз есть кнопки последней и первой страницы обычно
Ну там ещё есть, обычно, и по 2 страницы от текущей туда и сюда Я все равно не понимаю для чего все это нужно
Line'R
ты чё сделать хочешь? ты зачем при бинде пытаешься вьюху удалить? мож не показывать её вообще?
Потому что в FrameLayout от позиции разные вью, а делать fixed size тупо (список большой)
Valentin
Ну там ещё есть, обычно, и по 2 страницы от текущей туда и сюда Я все равно не понимаю для чего все это нужно
Могу сделать предложение - использовалась какая-то либа, которая по дефолту включала все эти поля в ответ
Line'R
Egor
Ребят, а sha256 ключ от названия пакета не зависит?
Valentin
да
Ну тогда это про другое
.
вопрос был в том почему Single<List<UserInfo>> полный феншуй, а Single<UserInfosResponse> - гавно.
Valentin
вопрос был в том почему Single<List<UserInfo>> полный феншуй, а Single<UserInfosResponse> - гавно.
Потому что создаётся класс под каждый ХХХ response, когда можно этого не делать
Mike
Ребят, а sha256 ключ от названия пакета не зависит?
sha256 ключа? Ни от чего не зависит, кроме самого ключа.