Проверка схемы JSON в Datapower

В соответствии с нашей текущей архитектурой у нас есть Datapower, который действует как привратник для проверки каждого входящего запроса (в JSON) по схемам JSON.

У нас есть много успокоительных сервисов, имеющих соответствующие схемы JSON, находящиеся в самом Datapower. Однако каждый раз при изменении определения сервиса необходимо менять соответствующую схему. Это приводит к развертыванию затронутой схемы Datapower.

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

Есть ли лучший подход для проверки схемы? Все, чего я хочу, — это не развертывание Datapower для каждого изменения схемы.

Просто к вашему сведению, мы часто получаем изменения схемы.


person maximus335    schedule 31.10.2016    source источник


Ответы (2)


Сохраняйте текущее решение как есть, так как добавление новых схем JSON для каждого запроса повлияет на производительность. Вместо этого, когда вы развертываете схему в серверной системе, используйте RMI (интерфейс управления REST) ​​или вызов SOMA, который загружает новую схему, или просто брандмауэр XML, где вы добавляете сценарий GWS, который записывает данные json в файл в каталоге (требуется 7.5 или выше).

Обратите внимание, что вы должны очистить кеш, а также через звонок!

person Anders    schedule 11.11.2016

Лучшим подходом является система push, основанная на подписке на изменения. Вы можете хранить схемы в etcd, redis, postgres или любой другой системе, которая имеет каналы уведомлений об изменениях данных, чтобы вы могли обновлять схемы в службе проверки, не делая этого при каждом запросе. Если ваша служба проверки использует валидатор, который компилирует схемы в код (ajv — я автор, is-my-json-valid, jsen), было бы еще лучше повысить производительность, если бы вы делали это только при изменении.

person esp    schedule 31.10.2016