happytails.ai
Български

Обединяване на схеми JSON Schema

Обединете няколко схеми JSON Schema или една композиция allOf в една схема. Правилата, които никога не могат да бъдат изпълнени едновременно, се посочват като конфликти.

Приема до 100 000 знака и от 2 до 50 схеми. Всичко работи в браузъра. Могат да се изтеглят обединената схема като JSON, JSON отчет и CSV списък с конфликти. JSON масив от схеми или една схема с allOf. Поддържа се и YAML. До 100 000 знака. Прегледайте настройките преди изпълнение.

Вашият резултат

Съобщете за проблем или споделете идея.

Обединяване на схеми JSON Schema
  1. Поставете JSON масив от схеми или една схема, чийто allOf ги изброява.
  2. Изберете версията на JSON Schema или запазете автоматичното разпознаване.
  3. Изпълнете обединяването и прегледайте конфликтите и правилата, запазени в allOf.
  4. Изтеглете обединената схема и отчета за конфликтите.

Какво да очаквате

Приема до 100 000 знака и от 2 до 50 схеми. Всичко работи в браузъра. Могат да се изтеглят обединената схема като JSON, JSON отчет и CSV списък с конфликти.

Как се обединяват правилата

Типовете, изброимите типове и стойностите const се пресичат, минималните и максималните граници приемат по-строгата стойност, списъците required се обединяват, а свойствата се сливат едно по едно. Когато една схема забранява допълнителни свойства, се забранява и свойство, дефинирано само от друга схема, а ако то е задължително, се посочва конфликт.

Какво остава в allOf

Някои ключови думи не могат да се обединят точно, например два различни регулярни израза, oneOf, not, if и then, patternProperties до други правила за свойства и неоценени свойства. Те се запазват в allOf в обединената схема и се посочват в отчета, така че смисълът на схемата да не се промени.

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

Конфликтите посочват мястото си в схемата. Конфликт в незадължително свойство или правило само за числа сам по себе си не прави цялата схема неизпълнима. Отчетът отбелязва provenUnsatisfiable само когато ограничено структурно доказателство установи, че никой екземпляр не може да изпълни обединената схема. Иначе този флаг не е доказателство за изпълнимост. Когато няма конфликти, незадължителни проверки с примери валидират чрез Ajv кандидатите от всяка композиция спрямо другата. Отделните входни схеми запазват собствените си корени за локални препратки. Примерите са доказателствен материал, а не изчерпателно доказателство за еквивалентност. Валидаторът отхвърля схеми, използващи __proto__ като ключ на свойство, шаблон или зависимост.