Автоматическая генерация проверки внешнего и внутреннего интерфейса для Angular / Java - PullRequest
0 голосов
/ 14 ноября 2018

Надеюсь, мой вопрос не слишком широк.

Наше приложение имеет угловой интерфейс и бэкэнд Java и нам нужна как внешняя, так и подтвержденная проверка. На данный момент мы вручную кодируем валидаторы в Typescript и Java, которые в основном делают то же самое. Поскольку это не только утомительно, но и подвержено ошибкам, мы хотели бы определить один раз (возможно, в файле JSON) какие поля ввода имеют какие ограничения и в идеале использовать часть программного обеспечения, которая автоматически генерирует Код Java и Typescript, основанный на этом определении.

Мой вопрос: существуют ли какие-либо коммерческие программные решения с открытым исходным кодом, которые позаботятся об этом? Это кажется достаточно распространенной проблемой, но я не сталкивался правильного решения пока нет. Схема JSON казалась многообещающей, и так как мы используем чванство В любом случае, я надеялся, что swagger-codegen автоматически примет во внимание поддерживаемые ключевые слова JSON-схемы в качестве ограничений, но я не понял, как это работает. Когда я генерирую код Angular, такие ограничения, как «минимум» и «максимум», полностью игнорируются, и когда я генерирую код Java SpringBoot, они отображаются только как аннотации.

1 Ответ

0 голосов
/ 15 ноября 2018

Это именно то, для чего предназначена JSON Schema. Открытый API (swagger) изменяет схему JSON для своих собственных целей, которая не включает проверку.

Схема JSON имеет реализации валидатора на большинстве основных языков, позволяющие вам использовать одну и ту же схему для выполнения одинаковой проверки на внешнем и внутреннем уровнях. http://json -schema.org / implementations.html

К сожалению, вы, вероятно, не сможете использовать те же схемы, которые используете для определения службы Open API. Мне неизвестны какие-либо реализации валидаторов, которые поддерживают разновидность Open API JSON Schema. Я понимаю, что Open API пытается сократить разрыв между их определением и схемой JSON, но разрыв все еще существует.

...