История изменений
Исправление Nervous, (текущая версия) :
На беке, предположим, прочтется во время запроса
Ничего никуда не прочтётся, в исходниках описаны схемы (можно сказать, типы) нужных данных и сгенерированы/написаны вручную валидаторы для для этих данных. Просто берём и валидируем в рантайме те куски данных, которые надо, а которые не надо — не валидируем.
Это ещё и с тайпскриптом можно скрестить, и тогда твои данные будут и статически типизированы для удобства разработки, и динамически провалидированы, где это требуется. Велосипедов с квадратными колёсами на классах и декораторах никаких не требуется.
Конечно, выразительность что у JSON Schema, что у JSON Type Definition так себе — например, произвольные предикаты в схему не втулить (скажем, чтобы ограничить возраст неотрицательными числами, не большими 123). Вот что-то вроде clojure.spec
запилить для жопаскрипта — это было бы круто.
Зато JSON Schema — практически стандарт, много где используется. Кроме Ajv, в OpenAPI/Swagger видел.
Исходная версия Nervous, :
На беке, предположим, прочтется во время запроса
Ничего никуда не прочтётся, в исходниках описаны схемы (можно сказать, типы) нужных данных и сгенерированы/написаны вручную валидаторы для для этих данных. Просто берём и валидируем в рантайме те куски данных, которые надо, а которые не надо — не валидируем.
Это ещё и с тайпскриптом можно скрестить, и тогда твои данные будут и статически типизированы для удобства разработки, и динамически провалидированы, где это требуется. Велосипедов с квадратными колёсами на классах и декораторах никаких не требуется.
Конечно, выразительность что у JSON Schema, что у JSON Type Definition так себе — например, произвольные предикаты в схему не втулить (скажем, чтобы ограничить возраст неотрицательными числами, не большими 123). Вот что-то вроде clojure.spec
запилить для жопаскрипта — это было бы круто.