Перейти к основному содержимому

Сервер

Разработка бэкенда и 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 в конец страниц со следующей целью:

  1. scripts.html — добавить код JavaScript в конец страницы бэк-офиса.
  2. scripts_dev.html — добавить код JavaScript в конец страницы области конструктора разработчика.
  3. scripts_login.html — добавить код JavaScript в конец страницы входа.

Стили​

Шаблоны стилей внедряют файлы стилей в начало страниц со следующей целью:

  1. styles.html — добавить код CSS в начало страницы бэк-офиса.
  2. styles_dev.html — добавить код CSS в начало страницы области конструктора разработчика.
  3. styles_login.html — добавить код CSS в начало страницы входа.