Aglio Builder не помещает объект в схему, если этот объект был определен как опция массива
Здесь я определяю свойство объекта Page Index
называется chartControllers
который должен быть массивом объектов, называемых chartController
,
# Page Index (Page Base)
- bundle: `site-index` (string, required) - название страницы на фронтенде
- nav (object, required) - навигационное меню
- settings: `/settings` (string, required) - юрл по которому будет осуществляться переход на страницу настроек
- signOut: `/signOut` (string, required) - юрл по которому будет отправляться POST запрос для выхода из аккаунта
- chart (object, required) - данные для первоначальной отрисовки графика, до выбора каких либо опций
- title (object, required)
- text: `выберите модуль` (string, required) - надпись в заголовке графика
- chartControllers (array[chartController], required) - массив всевозможных опций меню
# chartController
- title: `выбор инстанса` (string, required) - названии типа настройки в меню
- action: `/page` (string, required) - url по которому совершает данная настройка запрос при выборе ее опции(опций)
- name: `page` (string, required) - уникальное человекочитаемое имя настройки на английском языке
- method: `POST` (string, optional) - метод совершения запроса
aglio builder defines object Page Index correctly, with only one peculiar moment - it does not describe options for object `chartController`.
Это дает мне следующее тело, что хорошо:
{
"title": "главная",
"bundle": "site-index",
"nav": {
"settings": "/settings",
"signOut": "/signOut"
},
"chart": {
"title": {
"text": "выберите модуль"
}
},
"chartControllers": [
{
"title": "выбор инстанса",
"action": "/page",
"name": "page",
"method": "POST"
}
]
}
НО! Это дает мне не полную схему! Не описывает chartController
, Схема следующая:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Название страницы в табе браузера."
},
"bundle": {
"type": "string",
"description": "название страницы на фронтенде"
},
"nav": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"description": "юрл по которому будет осуществляться переход на страницу настроек"
},
"signOut": {
"type": "string",
"description": "юрл по которому будет отправляться POST запрос для выхода из аккаунта"
}
},
"required": [
"settings",
"signOut"
],
"description": "навигационное меню"
},
"chart": {
"type": "object",
"properties": {
"title": {
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "надпись в заголовке графика"
}
},
"required": [
"text"
]
}
},
"required": [
"title"
],
"description": "данные для первоначальной отрисовки графика, до выбора каких либо опций"
},
"chartControllers": {
"type": "array",
"description": "массив всевозможных опций меню"
}
},
"required": [
"title",
"bundle",
"nav",
"chart",
"chartControllers"
]
}
Как я могу это исправить и посмотреть chartController
быть определенным в схеме?
1 ответ
У меня был такой же вопрос, как и у вас, после долгого поиска в Интернете я наконец нашел решение:
Атрибуты с массивом объектов создают неполную схему #328
Вот исправление для вашего конкретного вопроса в качестве примера: (просто добавьте "исправлено", хотя я знаю, откуда пришло это "исправлено".)
# Page Index (Page Base)
......
- chartControllers (array[chartController], required, fixed) - массив всевозможных опций меню