Servidor
Desarrollo del backend y la API.
Carpeta del servidor
La carpeta 📂 server contiene un conjunto de archivos y carpetas que forman el backend de la aplicación.
Todo lo que está en la carpeta 📂 server se utiliza en el procesamiento del servidor de backend, como integraciones, API, base de datos, seguridad y autenticación, tareas Cron, entre muchos otros.
Estructura de la carpeta
En la carpeta 📂 server se encuentra la siguiente estructura:
./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
Acciones
En 📂 actions se pueden añadir acciones de personalización a medida (hooks) en las operaciones CRUD de los formularios generados automáticamente para el backoffice; de acuerdo con la estructura de datos, aquí se puede realizar mucha intervención de datos.
Por ejemplo, al eliminar un cliente es necesario eliminar todos sus pedidos, o al crear un nuevo producto se debe integrar con otro sistema. En fin, cualquier desarrollo relacionado directamente con datos puede hacerse aquí.
Las acciones están inspiradas en los triggers de base de datos, solo que a nivel de ejecución de código.
Por lo tanto, se pueden programar operaciones específicas en la creación, modificación y eliminación de datos.
Componentes
Los 📂 components se utilizan para definir tipos personalizados de campos en los formularios de backoffice, que pueden realizar la propia manipulación de datos.
Se pueden crear componentes mediante scripts para proporcionar un nuevo tipo de campo específico en la aplicación.
Núcleo
La carpeta 📂 core permite la inyección de código en el flujo de procesamiento de las peticiones HTTP.
También se utiliza para compartir código entre los distintos servicios y otros.
El _config.js se ejecuta después de que la configuración se carga en cada petición HTTP; se ejecuta después del script de configuración del entorno que se encuentra en la carpeta 📂 config de la aplicación.
El _init.js sirve para inyectar alguna instrucción cuando la aplicación se inicializa por primera vez.
Procesamiento de las peticiones HTTP
En el flujo de procesamiento de las peticiones HTTP para cualquier URL de la aplicación se ejecutan los respectivos scripts:
_request_start.jsse ejecuta cuando la petición HTTP llega al servidor de Netuno._request_url.jsse ejecuta cuando Netuno procesa la URL; la URL puede modificarse a otro destino._request_close.jsse ejecuta cuando se cierra la respuesta a la petición HTTP._request_end.jsse ejecuta cuando la petición HTTP finaliza definitivamente._request_error.jsse ejecuta cuando ocurre algún error en el procesamiento de la petición HTTP.
Procesamiento de los servicios de API
En el flujo de procesamiento de cualquier servicio de API de la aplicación se ejecutan los siguientes scripts:
_service_config.jsse ejecuta antes de iniciar la ejecución del servicio; sirve para definir las configuraciones de ejecución del servicio, entre otras cosas. Se puede definir si el servicio puede ejecutarse o no, es decir, un control de seguridad en el acceso al servicio de la API._service_start.jsse ejecuta en cuanto algún servicio comienza a procesarse._service_end.jsse ejecuta después de que finaliza el procesamiento de algún servicio._service_error.jsse ejecuta cuando ocurre algún error en el procesamiento de algún servicio.
Servicios - API
Es en la carpeta 📂 services donde se crean los servicios que forman la API de la aplicación.
Los servicios pueden escribirse en distintos lenguajes: JavaScript, Python, Java, Kotlin, Ruby o Groovy.
Como Netuno es políglota, cualquier archivo de script puede cambiarse a otro lenguaje de programación compatible; basta con que los archivos tengan la extensión correspondiente al lenguaje.
No se necesitan configuraciones adicionales en función del lenguaje de programación utilizado; basta con crear el archivo del servicio con la extensión correcta correspondiente al lenguaje de programación.
Configuración
En la carpeta 📂 setup está el código generado automáticamente por el motor de Netuno que define los esquemas de base de datos, y también es donde podemos colocar la carga de datos que es esencial para el funcionamiento de la aplicación.
El script _start.js se ejecuta antes de iniciar el procesamiento de construcción de la base de datos.
El script _end.js se ejecuta después de que finaliza el procesamiento de construcción de la base de datos.
De acuerdo con la construcción de la estructura de datos, Netuno crea aquí, en la carpeta 📂 setup, automáticamente el código necesario para que toda la estructura de datos se recree en una nueva base de datos, o para recrear algo que falte en otra base de datos donde la aplicación se ejecute eventualmente.
Plantillas
La carpeta 📂 templates contiene el contenido HTML de las páginas de backoffice de la aplicación, que son generadas por el servidor de Netuno.
La carpeta 📂 dev contiene el archivo dashboard.html, que permite modificar el área de trabajo en el modo de construcción del desarrollador.
El dashboard.html que está en la raíz de las plantillas contiene el HTML del área de trabajo general del backoffice.
Plantillas nativas
En la carpeta 📂 _ se puede sustituir cualquier plantilla general, es decir, se pueden modificar las plantillas predeterminadas de Netuno.
Si el nombre de carpetas y/o archivos coincide con el de las plantillas nativas dentro de esta carpeta, entonces se utiliza la plantilla que se encuentra en esta carpeta en lugar de la plantilla nativa.
Es decir, basta con replicar la misma estructura de la plantilla nativa dentro de la carpeta 📂 _ para sustituirla.
Scripts
Las plantillas de scripts inyectan archivos de código JavaScript al final de las páginas con el siguiente propósito:
scripts.htmlañadir código JavaScript al final de la página de backoffice.scripts_dev.htmlañadir código JavaScript al final de la página del área de construcción del desarrollador.scripts_login.htmlañadir código JavaScript al final de la página de inicio de sesión.
Estilos
Las plantillas de estilos inyectan archivos de estilos al principio de las páginas con el siguiente propósito:
styles.htmlañadir código CSS al principio de la página de backoffice.styles_dev.htmlañadir código CSS al principio de la página del área de construcción del desarrollador.styles_login.htmlañadir código CSS al principio de la página de inicio de sesión.