Я создал это промежуточное ПО в Node.js для проверки входящего запроса, заголовков и тела. Оно может проверять тело на любой возможной глубине.

Проверка пункта запроса

В ответ мы бы получили, какой пункт запроса отсутствует

Проверка заголовков в пункте

Мы бы получили в ответ, какие заголовки отсутствуют в параграфе

Проверка тела

Таким образом, в случае тела, если внутри объекта произошло несоответствие типа, он сообщит ключевые детали, в случае массива он укажет индекс проблемы.

След будет отсутствовать, например, на скриншоте выше

  1. под «вложенным» ключом будет какой-то массив, в его 0-й позиции будет какой-то ключ «а»
  2. под «вложенным» ключом будет некоторый массив в его 0-й позиции, есть другой объект с ключом «v» под этим любым массивом под ним в 0-й позиции в ключе «age»

Вы можете видеть изменения в теле и изменения в ответ

Как использовать это промежуточное ПО за 3 простых шага:

  1. клонируйте это репо ‘ https://github.com/saru998/node_request_schema_validator ’, вы получите код вида

2. Напишите вашу схему или копию от почтальона API в schema_json

3. Используйте промежуточное ПО в маршрутизаторе с тем же идентификатором запроса, что и в schema_json.

Тебе хорошо идти ..

Для сравнения объекта у меня есть собственный алгоритм с использованием подхода DFS, который вы можете понять в:

Https://medium.com/@saransh98/algorithm-deep-object-comparison-using-dfs-depth-first-search-dbf63e150b8f

Примечание: если вы хотите сделать исключение для параметра, вы можете поместить его значение в schema_json null, он пропустит проверку этого типа ключа

СДЕЛАНО