Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как на фронте провалидировать данные, пришедшие с бэка? (https://javascript.ru/forum/misc/75555-kak-na-fronte-provalidirovat-dannye-prishedshie-s-behka.html)

Altai 18.10.2018 21:19

Как на фронте провалидировать данные, пришедшие с бэка?
 
Что-то не могу понять в какую сторону копать. Бывает что на бэке программист никому ничего не сказав, производит рефакторинг (убираем моральную сторону этого вопроса, мол должен предупреждать, и т.д. Берём худший вариант, когда бэк незаменим и повлиять на его поведение никак не выходит). Паралельно на фронте ведутся свои работы. В итоге уходит n-ное кол-во времени, чтоб выяснить, кто наделал каку. Каким образом можно автоматизировать проверку пришедших данных на нужные поля, их тип и т.д.
И сразу ещё один вопрос - как провалидировать данные, если есть условие. Например если в JSON-чике есть поле "someField" - то подставлять одну валидацию. Если вместо него "anotherField" - то другую валидацию

SuperZen 18.10.2018 22:40

TypeScript, Flow, prop-types )... фронт-то на чем?

destus 19.10.2018 07:05

Цитата:

TypeScript, Flow, prop-types
Ему это не поможет, потому что все эти штуки работают в runtime, т.е. при первом запуске системы.

SuperZen 19.10.2018 09:01

prop-types нет ), в том смысле если подпихнуть объект, который не соответствует описанию, то в консоле будет еррор, что типа такой-то объект не содержит то-то, или то-то не в том формате...

destus 19.10.2018 10:01

Цитата:

Сообщение от SuperZen (Сообщение 496641)
prop-types нет ), в том смысле если подпихнуть объект, который не соответствует описанию, то в консоле будет еррор, что типа такой-то объект не содержит то-то, или то-то не в том формате...

Действительно это штуку можно использовать даже отдельно от React`a, вызывая каждый раз при ответе от сервера, но только в dev режиме https://github.com/facebook/prop-typ...opTypes.js#L42

SuperZen 19.10.2018 12:23

хорошая мысля приходит на посля, и тут подумалось об xsd для json, и вот оно http://json-schema.org/

Altai 19.10.2018 15:51

Цитата:

Сообщение от SuperZen (Сообщение 496626)
TypeScript, Flow, prop-types )... фронт-то на чем?

Фронт на реакте. И вместо prop-types мы юзаем флоу, который, как сказал destus, выполняется в runtime.
JSON Schema - тоже начал копать в сторону этого варианта. Случайно нету опенсорс примеров, с использованием JSON Schema в React приложении?
p.s. Нашел ещё вот такое чудо-юдо - https://github.com/mozilla-services/...sonschema-form, может кому-то будет полезным


Часовой пояс GMT +3, время: 10:28.