на проекте бек постоянно дорабатывается и вот проблема, что надо эти изменения надо отслеживать
А тайпскрипт в рантайме к сожалению не работает
вот тут вот еще есть одна идея как это отслеживать...
есть такая библиотека yup. Она умеет автоматом выводить типы ТС по схеме валидации.
Ну вот идея в том, что бы ответы от АПИ описывать схемой на yup, автоматом выводить из нее тип и использовать этот тип далее в проекте
и если я сталкиваюсь с ситуацией, что ответ от апи не совпадает с описаной схемой на yup
то я получаю ошибку валидации от yup, но при этом мне не приходиться делать дублирующую работу по описанию этих данных второй раз на тайпскрипте.
Вот тоже думаю насколько пахнет кастылями такая идея?
на проекте есть свагер, и да я могу прикрутить кодогенерацию, но как я понял из-за того что не факт что свагер будет корректно описан это даст решение проблемы.
Ну в целом интересен опыт подомного рода...
Сделать из яп схемы тип нельзя чтоль? Как в зоде
Как это сваггер не корректно описан? Обычно на бекенде генерят сваггер основываясь на валидаторах
есть рантайм контракты
именно про это я и написал
на практике это работает не всегда)
валидаторы работают на вход, а не на выход или нет?
Выход сериализуется)
runtypes, zod
я немного не про это я в целом, насколько такое вообще делают и не будет ли здесь каких нибудь подводных камней
Про это, делают когда не верят бэку
))))))) Ну я вот не то, что бы ему не доверяю ))))) ПРосто есть некторые сомнения ))))
И насколько это распространенная практика ?
у меня нет статистики)
Да и как-то сложно её будет подобрать
Вы или парсите или делаете as и надеваете крестик
все просто. Если у тебя переодически возникают проблемы которые могли бы решить рантайм контракты, и другие методы тебе не помогают - используешь их
Встречалась ситуация, когда в апи менялись поля и после вопросов в чате, о, а вот вам новая апидок
Чет вы меня прям напугали ))
Нормально так делать, если есть опасения. Можно взять тот же zod, описывать ДТО схемы входящих данных и тут же делать из них TS типы для использования в проекте.
+ можно прикрутить авто проверку схем сразу в запросах, как-то так делали, удобно
А вот это очень интересный вопрос есть мнение, что бэкендер делает там правки вручную бэк на джанго и хотя у меня исходный код есть, я вот не могу сказать, что там от руки, а что нет, так как не знаю ни питон ни джанго ))
На шило бекендера
ну как я понял мы с ним оба стажеры, так что на шило не надо )) тем более человек вроде хороший )) Но вот мне уже много кто говорил, что из-за того, что на беке как -то это вручную делается могут быть проблемы сам я бек чуть-чуть знаю, но вот свагер я на нем не поднимал, поэтому как он там конфигурируется я ХЗ ))
Подойди скажи ему что он дурак дураком раз вручную сваггер пишет От такого мало смысла это уже не совсем контракт))
Ну вообще это идея конечно. надо спросить у него, как он там это все хозяйство ведет ))
Обсуждают сегодня