Сервер
Разработка бэкенда и API.
Папка сервера
Папка 📂 server содержит набор файлов и папок, которые образуют бэкенд приложения.
Всё, что находится в папке 📂 server, используется при обработке сервером бэкенда, например интеграции, API, база данных, безопасность и аутентификация, задания Cron и многое другое.
Структура папки
В папке 📂 server находится следующая структура:
./server/ ├─ ./actions/ ├─ ./components/ ├─ ./core/ │ ├─ ./_config.js │ ├─ ./_init.js │ ├─ ./_request_close.js │ ├─ ./_request_end.js │ ├─ ./_request_error.js │ ├─ ./_request_start.js │ ├─ ./_request_url.js │ ├─ ./_service_config.js │ ├─ ./_service_end.js │ ├─ ./_service_error.js │ └─ ./_service_start.js ├─ ./reports/ ├─ ./services/ ├─ ./setup/ │ ├─ ./_end.js │ └─ ./_start.js └─ ./templates/ ├─ ./_/ ├─ ./dev/ │ └─ ./dashboard.html ├─ ./dashboard.html ├─ ./scripts.html ├─ ./scripts_dev.html ├─ ./scripts_login.html ├─ ./styles.html ├─ ./styles_dev.html └─ ./styles_login.html
Действия
В 📂 actions можно добавлять настраиваемые действия (хуки) в операции CRUD форм, автоматически создаваемых для бэк-офиса; в зависимости от структуры данных здесь можно выполнить множество вмешательств в данные.
Например, при удалении клиента необходимо удалить все его заказы, или при создании нового продукта должна быть выполнена интеграция с другой системой. Словом, любая разработка, напрямую связанная с данными, может выполняться здесь.
Действия вдохновлены triggers базы данных, но на уровне выполнения кода.
Таким образом, можно программировать конкретные операции при создании, изменении и удалении данных.
Компоненты
Папка 📂 components используется для определения пользовательских типов полей в формах бэк-офиса, которые могут самостоятельно выполнять манипуляции с данными.
Можно создавать компоненты с помощью скриптов, чтобы предоставить новый специфический тип поля в приложении.
Ядро
Папка 📂 core позволяет внедрять код в поток обработки HTTP-запросов.
Она также используется для совместного использования кода между различными сервисами и другими компонентами.
_config.js выполняется после загрузки конфигурации при каждом HTTP-запросе; он выполняется после скрипта конфигурации окружения, который находится в папке 📂 config приложения.
_init.js служит для внедрения некоторой инструкции при первом запуске приложения.
Обработка HTTP-запросов
В потоке обработки HTTP-запросов к любому URL приложения выполняются соответствующие скрипты:
_request_start.jsвыполняется, когда HTTP-запрос поступает на сервер Netuno._request_url.jsвыполняется, когда URL обрабатывается Netuno; URL можно изменить на другой адрес назначения._request_close.jsвыполняется, когда ответ на HTTP-запрос закрывается._request_end.jsвыполняется, когда HTTP-запрос окончательно завершён._request_error.jsвыполняется, когда при обработке HTTP-запроса возникает какая-либо ошибка.
Обработка сервисов API
В потоке обработки любого сервиса API приложения выполняются следующие скрипты:
_service_config.jsвыполняется перед началом выполнения сервиса и служит для определения конфигураций выполнения сервиса, среди прочего. Можно определить, может ли сервис выполняться или нет, то есть это контроль безопасности доступа к сервису API._service_start.jsвыполняется сразу после того, как начинается обработка какого-либо сервиса._service_end.jsвыполняется после завершения обработки какого-либо сервиса._service_error.jsвыполняется, когда при обработке какого-либо сервиса возникает ошибка.
Сервисы - API
Именно в папке 📂 services создаются сервисы, которые образуют API приложения.
Сервисы могут быть написаны на различных языках: Javascript, Python, Java, Kotlin, Ruby или Groovy.
Поскольку Netuno является полиглотом, любой файл скрипта может быть изменён на другой поддерживаемый язык программирования; достаточно, чтобы расширение файла соответствовало языку.
Дополнительные конфигурации в зависимости от используемого языка программирования не требуются; достаточно создать файл сервиса с правильным расширением, соответствующим языку программирования.
Настройка
В папке 📂 setup находится код, автоматически генерируемый движком Netuno, который определяет схемы базы данных; здесь же можно разместить загрузку данных, необходимую для работы приложения.
Скрипт _start.js выполняется перед началом процесса построения базы данных.
Скрипт _end.js выполняется после завершения процесса построения базы данных.
В соответствии с построением структуры данных Netuno автоматически создаёт здесь, в папке 📂 setup, код, необходимый для воссоздания всей структуры данных в новой базе данных или для воссоздания того, чего не хватает в другой базе данных, в которой приложение может быть в конечном итоге запущено.
Шаблоны
Папка 📂 templates содержит HTML-содержимое страниц бэк-офиса приложения, которые генерируются сервером Netuno.
В папке 📂 dev находится файл dashboard.html, который позволяет изменять рабочую область в режиме конструктора разработчика.
dashboard.html, находящийся в корне шаблонов, содержит HTML общей рабочей области бэк-офиса.
Нативные шаблоны
В папке 📂 _ можно заменить любой общий шаблон, то есть стандартные шаблоны Netuno могут быть изменены.
Если имя папок и/или файлов совпадает с именами нативных шаблонов в этой папке, то используется шаблон, находящийся в этой папке, вместо нативного шаблона.
То есть достаточно повторить ту же структуру нативного шаблона внутри папки 📂 _, чтобы заменить его.
Скрипты
Шаблоны скриптов внедряют файлы кода JavaScript в конец страниц со следующей целью:
scripts.html— добавить код JavaScript в конец страницы бэк-офиса.scripts_dev.html— добавить код JavaScript в конец страницы области конструктора разработчика.scripts_login.html— добавить код JavaScript в конец страницы входа.
Стили
Шаблоны стилей внедряют файлы стилей в начало страниц со следующей целью:
styles.html— добавить код CSS в начало страницы бэк-офиса.styles_dev.html— добавить код CSS в начало страницы области конструктора разработчика.styles_login.html— добавить код CSS в начало страницы входа.