LINUX.ORG.RU

История изменений

Исправление Nervous, (текущая версия) :

На беке, предположим, прочтется во время запроса

Ничего никуда не прочтётся, в исходниках описаны схемы (можно сказать, типы) нужных данных и сгенерированы/написаны вручную валидаторы для для этих данных. Просто берём и валидируем в рантайме те куски данных, которые надо, а которые не надо — не валидируем.

Это ещё и с тайпскриптом можно скрестить, и тогда твои данные будут и статически типизированы для удобства разработки, и динамически провалидированы, где это требуется. Велосипедов с квадратными колёсами на классах и декораторах никаких не требуется.

Конечно, выразительность что у JSON Schema, что у JSON Type Definition так себе — например, произвольные предикаты в схему не втулить (скажем, чтобы ограничить возраст неотрицательными числами, не большими 123). Вот что-то вроде clojure.spec запилить для жопаскрипта — это было бы круто.

Зато JSON Schema — практически стандарт, много где используется. Кроме Ajv, в OpenAPI/Swagger видел.

Исходная версия Nervous, :

На беке, предположим, прочтется во время запроса

Ничего никуда не прочтётся, в исходниках описаны схемы (можно сказать, типы) нужных данных и сгенерированы/написаны вручную валидаторы для для этих данных. Просто берём и валидируем в рантайме те куски данных, которые надо, а которые не надо — не валидируем.

Это ещё и с тайпскриптом можно скрестить, и тогда твои данные будут и статически типизированы для удобства разработки, и динамически провалидированы, где это требуется. Велосипедов с квадратными колёсами на классах и декораторах никаких не требуется.

Конечно, выразительность что у JSON Schema, что у JSON Type Definition так себе — например, произвольные предикаты в схему не втулить (скажем, чтобы ограничить возраст неотрицательными числами, не большими 123). Вот что-то вроде clojure.spec запилить для жопаскрипта — это было бы круто.