169 похожих чатов

Есть ли вообще смысл отслеживать входящие данные от АПИ? Просто щас

на проекте бек постоянно дорабатывается и вот проблема, что надо эти изменения надо отслеживать

А тайпскрипт в рантайме к сожалению не работает

вот тут вот еще есть одна идея как это отслеживать...

есть такая библиотека yup. Она умеет автоматом выводить типы ТС по схеме валидации.

Ну вот идея в том, что бы ответы от АПИ описывать схемой на yup, автоматом выводить из нее тип и использовать этот тип далее в проекте

и если я сталкиваюсь с ситуацией, что ответ от апи не совпадает с описаной схемой на yup

то я получаю ошибку валидации от yup, но при этом мне не приходиться делать дублирующую работу по описанию этих данных второй раз на тайпскрипте.

Вот тоже думаю насколько пахнет кастылями такая идея?

на проекте есть свагер, и да я могу прикрутить кодогенерацию, но как я понял из-за того что не факт что свагер будет корректно описан это даст решение проблемы.

Ну в целом интересен опыт подомного рода...

26 ответов

29 просмотров

Сделать из яп схемы тип нельзя чтоль? Как в зоде

Как это сваггер не корректно описан? Обычно на бекенде генерят сваггер основываясь на валидаторах

есть рантайм контракты

Rain- Автор вопроса

валидаторы работают на вход, а не на выход или нет?

runtypes, zod

Rain- Автор вопроса
Raman
runtypes, zod

я немного не про это я в целом, насколько такое вообще делают и не будет ли здесь каких нибудь подводных камней

Rain- Автор вопроса
Raman
Про это, делают когда не верят бэку

))))))) Ну я вот не то, что бы ему не доверяю ))))) ПРосто есть некторые сомнения ))))

Rain- Автор вопроса
Ilya Agarkov
так делают

И насколько это распространенная практика ?

Ilya Agarkov
у меня нет статистики)

Да и как-то сложно её будет подобрать

Rain
И насколько это распространенная практика ?

Вы или парсите или делаете as и надеваете крестик

Rain
))))))) Ну я вот не то, что бы ему не доверяю )))...

все просто. Если у тебя переодически возникают проблемы которые могли бы решить рантайм контракты, и другие методы тебе не помогают - используешь их

Встречалась ситуация, когда в апи менялись поля и после вопросов в чате, о, а вот вам новая апидок

Rain- Автор вопроса
Rain
Чет вы меня прям напугали ))

Нормально так делать, если есть опасения. Можно взять тот же zod, описывать ДТО схемы входящих данных и тут же делать из них TS типы для использования в проекте.

Yaroslav 🥷
Нормально так делать, если есть опасения. Можно вз...

+ можно прикрутить авто проверку схем сразу в запросах, как-то так делали, удобно

Rain- Автор вопроса
саша2007
Как это сваггер не корректно описан? Обычно на бек...

А вот это очень интересный вопрос есть мнение, что бэкендер делает там правки вручную бэк на джанго и хотя у меня исходный код есть, я вот не могу сказать, что там от руки, а что нет, так как не знаю ни питон ни джанго ))

Rain- Автор вопроса

ну как я понял мы с ним оба стажеры, так что на шило не надо )) тем более человек вроде хороший )) Но вот мне уже много кто говорил, что из-за того, что на беке как -то это вручную делается могут быть проблемы сам я бек чуть-чуть знаю, но вот свагер я на нем не поднимал, поэтому как он там конфигурируется я ХЗ ))

Rain
ну как я понял мы с ним оба стажеры, так что на ши...

Подойди скажи ему что он дурак дураком раз вручную сваггер пишет От такого мало смысла это уже не совсем контракт))

Rain- Автор вопроса
саша2007
Подойди скажи ему что он дурак дураком раз вручную...

Ну вообще это идея конечно. надо спросить у него, как он там это все хозяйство ведет ))

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта