ChatCrawlerпоиск по публичному Telegram Открыть приложение
P

PurpleSchool - чат разработчиков

снимок за февраль 2024
февраль 2024 ×
29 февраля 2024
A
Буду искать альтернативы или в худшем случае сам писать, спасибо
С
Ребята, день добрый!) Хотел бы у вас всех поинтересоваться по поводу того, как кто организовывает безопасность своего фронтенд приложения на уровне апишки Раньше я делал как: берёшь, создаешь эндпоинт на получение чего-либо. В типизации указываешь то, что получаешь. Ну и дальше если ошибка, то ошибка, или возвращаешь то, что получаешь Но недавно читал несколько интересных материалов на тему того, что фронт не должен доверять Баку в плане получаемых данных и нужно делать упор на безопасность и независимость своего фронтенда от внешних источников, чтобы на уровне инфраструктурного слоя проводились все необходимые валидации и преобразования входящих данных, и в ядро приложения(в доменный слой) попадали гарантированно корректные , провалидированные, актуальные данные В принципе проблема действительно имеет место быть, так как тот факт, что я типизировал ответ от сервера, никак не защищает меня от того, что бэк на своей стороне изменил какое то поле, добавил новое, изменил тип данных и тд. Можно списать на коммуникацию, типо он должен сообщать фронту об актуальных изменениях, но все мы люди, и поэтому хотелось бы взять эту ситуацию под свой контроль. В итоге все эти изменения могут выстрелить в рантайме: чего то будет не хватать, тип данных изменится и тд. В материалах на эту тему автор приводит в пример, как он валидирует данные с помощью zod. Получаешь ответ от сервера, валидируешь, если валидация прошла, по необходимости трансформируешь данные и пускаешь их в ядро приложения =================== Но по внедрению такого слоя логики тоже есть вопросы. Вот у нас сейчас проект - часть банкового приложения под webview. Туда сюда ходят большие наборы данных ииии………. Под каждый эндпоинт нужно писать свой большой валидатор? Плюс с точки зрения ui/ux тоже есть вопросы. Допустим валидация не прошла(типо важное поле случайно на бэке изменили и фронт забраковал эти данные). И что юзеру-то показывать? А-ля «ведутся технические работы» ?😄
с бэка не сможешь отдать то что фронт не ждёт
контракты в общей репе
V
на каждом роуте реквест и респонс валидатор, думаю это нормально
С
Vladimir Kuzminс бэка не сможешь отдать то что фронт не ждёт
Именно к этой идее и пришел, чтобы минимально от внешних обстоятельств зависеть) Валидатор через zod делаете в команде или каким способом? А когда валидация данных не прошла, это же на уровне дизайна решаете? Просто ошибку как-то тоже нужно обрабатывать
V
Сергей ВолодинИменно к этой идее и пришел, чтобы минимально от внешних обстоятельств зависеть) Валидатор через zod делаете в команде или каким способом? А когда валидация данных не прошла, это же на уровне дизайна решаете? Просто ошибку как-то тоже нужно обрабатывать
у нас сложно, все контракты json schema, валидатор ajv, потом с этого еще и типы генерируются. но тут ты можешь выбирать что хочешь. Главное чтобы это было доступно и фронту и бэку, и в коде было обязательным. Например ты не можешь определить роут без валидаторов.
С
Фотография
нажмите — покажем
Например как в официальной доке :D
Сергей ВолодинЕсли валидация не прошла, на фронте как решаете? Показываете что-то юзеру или ошибку через throw в консольку кидаете?
ну в большинстве случаев у тебя проект не соберётся если типы не соответствуют, ну и в крайних случаях роут на бэке вернёт 500 с ошибкой валидации своего же респонса, это сразу видно и бэк идёт это дело исправлять
иначе некоторые вещи потом можно на фронте искать очень долго
I
Фотография
нажмите — покажем
#видео React 19 - React Compiler, Actions, use hook, activity Сегодня мы будем разбирать новые возможности, которые появятся в React 19 и что они меняют в том, как мы пишем React приложения. Мы на Яндекс Музыке, Spotify, Apple Music: https://purpleschool.mave.digital Видео: https://youtu.be/jOzCABBhfTE
4.6K ·
Фотография
нажмите — покажем
подскажите почему скролл не отключается?
А
И должен ли вообще
С
Anton Oshurekвсе данные которые приходят, проходят ччерез адаптер. это такой патерн проектирования, почитай. тогда будет всё ок, если придёт что то не то
Использовал адаптер на одном прошлом проекте, но немного для других целей. С бэка приходило полей 30, а мне на фронте по факту нужно было полей 10, остальные служебные, которые бэку нужны были для каких-то его целей. Плюс все поля приходили в кебаб кейсе,а мне нужен был верблюжий стиль. Решил написать маппер, который в себя принимал ответ с бэка, и возвращал только уже мою структуру, которая мне нужна, и по сути весь фронт строился только на моих структурах Я же правильно понял смысл адаптера? Это и есть он? 😄
A
Открыть в Telegram Каталог площадок Искать в ChatCrawler

Слепок открытой публичной ленты из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог