Во-первых, я не получаю правильного ответа об ошибках и на веб-платформе (https://jsonschemalint.com). Я использую jsonschema в python и имею правильную схему json и данные json, которые работают.
Проблема, которую я хотел бы решить, заключается в следующем: прежде чем мы доставим файлы JSON с примерами данных, нам нужно запустить их через SoapUI, чтобы проверить их правильность, поскольку мы имеем дело с огромными файлами, и обычно наши разработчики могут допустим некоторые ошибки при их генерации, поэтому мы делаем последнюю проверку.
Я бы хотел создать скрипт для автоматизации этого, избегая SoapUI. Поэтому после поиска в Google я наткнулся на jsonschema и попытался использовать его. Я получаю все правильные результаты и т. Д., Я получаю ошибки, когда удаляю определенные элементы как обычно, но самые большие проблемы заключаются в следующем:
Пример:
У меня есть объект sububsub в моей схеме JSON, назовем его Test1, который содержит следующее:
**Schema**
{
"exname":"2",
"info":{},
"consumes":{},
"produces":{},
"schemes":{},
"tags":{},
"parameters":{},
"paths":{},
"definitions":{
"MainTest1":{
"description":"",
"minProperties":1,
"properties":{
"test1":{
"items":{
"$ref":"#//Test1"
},
"maxItems":10,
"minItems":1,
"type":"array"
},
"test2":{
"items":{
"$ref":"#//"
},
"maxItems":10,
"minItems":1,
"type":"array"
}
}
},
"Test1":{
"description":"test1des",
"minProperties":1,
"properties":{
"prop1":{
"description":"prop1des",
"example":"prop1exam",
"maxLength":10,
"minLength":2,
"type":"string"
},
"prop2":{
"description":"prop2des",
"example":"prop2example",
"maxLength":200,
"minLength":2,
"type":"string"
},
"prop3":{
"enum":[
"enum1",
"enum2",
"enum3"
],
"example":"enum1",
"type":"string"
}
},
"required":[
"prop3"
],
"type":"object"
}
}
}
**Proper example for Test1**
{
"Test1": [{
"prop1": "TestStr",
"prop2": "Test and Test",
"prop3": "enum1"
}]
}
**Improper example that still passes validation for Test1**
{
"test1": [{
"prop1": "TestStr123456", [wrong as it passes the max limit]
"prop2": "Test and Test",
"prop3": " enum1" [wrong as it has a whitespace char before enum1]
}]
}
Первая проблема, с которой я столкнулся, заключается в том, что enum в prop3 не проверен правильно. Итак, когда я использую «enum1» или «enumruwehrqweur» или «буквально что-нибудь», тесты проходят. Кроме того, символы min-max не проверяются в моем JSON. Независимо от того, сколько символов я использую в любом поле, я не получаю сообщение об ошибке. У кого-нибудь есть идеи, как это исправить, или кто-нибудь нашел лучший способ сделать то, что я хотел бы сделать? Заранее спасибо!