Я пытаюсь определить схему для проверки этого типа массива данных:
[
'item1 string', // item1, being a given string
2, // item2, an integer
'item3 string', // item3, a variable string, repeated N times
'another item3 string', // ...
...
'last item3 string', //
1.1, // item4, a number
]
item3 - это набор строк, который может быть разным. Без повторения упрощенная версия моей схемы:
{
type: 'array',
minItems: 4,
maxItems: 4,
items: [
{ $ref: '#/definitions/item1' },
{ $ref: '#/definitions/item2' },
{ $ref: '#/definitions/item3' },
{ $ref: '#/definitions/item4' },
],
definitions: {
item1: { type: 'string' },
item2: { type: 'integer' },
item3: { type: 'string' },
item4: { type: 'number' },
},
}
Я хочу, чтобы моя секция «items» была массивом, так как я хочу убедиться, что элементы упорядочены правильно. Но я не понимаю, как описать повторение элементов «item3».
На самом деле я заранее знаю количество ожидаемых вхождений «item3», поэтому прямо сейчас я перестраиваю схему для каждой проверки ( настройка mix / maxItems и повторение раздела item3).
Но есть ли более эффективный способ сделать это? Эта схема используется в nodejs / ajv, есть ли функция ajv, которая могла бы помочь, если это невозможно внутри схемы? Спасибо.