Как мне выполнить проверку схемы JSON с использованием пограничных политик Apigee?

#javascript #json #apigee #jsonschema

#javascript #json #apigee #jsonschema

Вопрос:

Предположим, у вас есть схема для допустимой полезной нагрузки, определенная в соответствии с json-schema.org и вы хотели бы проверить это в прокси-сервере перед обработкой полезной нагрузки или передачей ее на серверную часть, как вы можете правильно проверить содержимое полезной нагрузки?

Ответ №1:

В Apigee нет встроенного средства проверки схемы JSON, поэтому лучше всего создать на Javascript что-то вроде tv4 или другого средства проверки на основе javascript. Затем вам нужно создать Javascript-выноску, которая содержит ваш скрипт для проверки переменной Apigee flow и включает вашу библиотеку (например, tv4.js )

 <Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="JSO- Validate-JSON">
    <DisplayName>JS-Validate-JSON</DisplayName>
    <FaultRules/>
    <Properties/>
    <ResourceURL>jsc://validatejson.js</ResourceURL>
    <IncludeURL>jsc://tv4.js</IncludeURL>
</Javascript>
  

tv4 доступен на github по адресу https://github.com/geraintluff/tv4

Ответ №2:

Чтобы немного расширить информацию об ответе Майкла Б. validatejson.js будет ли политика JavaScript, которая загрузит схему в переменную schema, которая будет проверена на соответствие response.content:

 var valid = tv4.validate(response.content, schema);
if(valid){
    log.info("Schema is valid!"   valid);
} else {
    context.setVariable("raiseFaultRuleSchemaValidation", "true");
    context.setVariable("raiseFaultRuleSchemaValidationMessage", tv4.error)
  }
}