Here I'm defining a property in object Page Index
called chartControllers
which must be an array of objects called 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`.
It provides me with the following body, which is fine:
{
"title": "главная",
"bundle": "site-index",
"nav": {
"settings": "/settings",
"signOut": "/signOut"
},
"chart": {
"title": {
"text": "выберите модуль"
}
},
"chartControllers": [
{
"title": "выбор инстанса",
"action": "/page",
"name": "page",
"method": "POST"
}
]
}
BUT! It provides me with not complete schema! It does not describe chartController
.
The schema is the following:
{
"$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"
]
}
How can I fix that and see chartController
to be defined in schema?
I had the same question as you, after searching the web for a long time, finally I found the solution:
Attributes with array of objects produce incomplete schema #328
Here is the fix for your particular question as an example: (just add 'fixed', although I have know idea where this 'fixed' came from.)