Serveur
Développement du backend et de l'API.
Dossier du serveur
Le dossier 📂 server contient un ensemble de fichiers et de dossiers qui forment le backend de l'application.
Tout ce qui se trouve dans le dossier 📂 server est utilisé dans le traitement du serveur backend, comme les intégrations, l'API, la base de données, la sécurité et l'authentification, les Cron Jobs, entre autres.
Structure du dossier
Dans le dossier 📂 server se trouve la structure suivante :
./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
Dans 📂 actions, on peut ajouter des actions personnalisées sur mesure (hooks) dans les opérations CRUD des formulaires générés automatiquement pour le backoffice ; en fonction de la structure des données, de nombreuses interventions sur les données peuvent être effectuées ici.
Par exemple, lors de la suppression d'un client, il est nécessaire de supprimer toutes ses commandes, ou lors de la création d'un nouveau produit, il doit être intégré à un autre système. Enfin, tout développement directement lié aux données peut être effectué ici.
Les actions sont inspirées des triggers de base de données, mais au niveau de l'exécution du code.
Ainsi, des opérations spécifiques peuvent être programmées lors de la création, de la modification et de la suppression de données.
Composants
Les 📂 components sont utilisés pour définir des types de champs personnalisés dans les formulaires de backoffice, qui peuvent effectuer leur propre manipulation de données.
Des composants peuvent être créés via des scripts pour fournir un nouveau type de champ spécifique dans l'application.
Core
Le dossier 📂 core permet l'injection de code dans le flux de traitement des requêtes HTTP.
Il est également utilisé pour partager du code entre les différents services et autres.
Le fichier _config.js est exécuté après le chargement de la configuration à chaque requête HTTP ; il est exécuté après le script de configuration de l'environnement qui se trouve dans le dossier 📂 config de l'application.
Le fichier _init.js sert à injecter des instructions lors de la première initialisation de l'application.
Traitement des requêtes HTTP
Dans le flux de traitement des requêtes HTTP pour toute URL de l'application, les scripts respectifs sont exécutés :
_request_start.jsest exécuté lorsque la requête HTTP arrive au serveur Netuno._request_url.jsest exécuté lorsque l'URL est traitée par Netuno, l'URL peut être modifiée pour une autre destination._request_close.jsest exécuté lorsque la réponse à la requête HTTP est fermée._request_end.jsest exécuté lorsque la requête HTTP est définitivement terminée._request_error.jsest exécuté lorsqu'une erreur se produit lors du traitement de la requête HTTP.
Traitement des services API
Dans le flux de traitement de tout service API de l'application, les scripts suivants sont exécutés :
_service_config.jsest exécuté avant de démarrer l'exécution du service, il sert à définir les configurations d'exécution du service entre autres choses. On peut définir si le service peut ou non être exécuté, c'est-à-dire un contrôle de sécurité sur l'accès au service API._service_start.jsest exécuté dès qu'un service commence à être traité._service_end.jsest exécuté après la fin du traitement d'un service._service_error.jsest exécuté lorsqu'une erreur se produit lors du traitement d'un service.
Services - API
C'est dans le dossier 📂 services que sont créés les services qui forment l'API applicative.
Les services peuvent être écrits dans différents langages : JavaScript, Python, Java, Kotlin, Ruby ou Groovy.
Comme Netuno est polyglotte, tout fichier de script peut être changé pour un autre langage de programmation pris en charge, il suffit d'avoir l'extension des fichiers en fonction du langage.
Aucune configuration supplémentaire n'est nécessaire en fonction du langage de programmation utilisé, il suffit de créer le fichier du service avec l'extension correcte correspondant au langage de programmation.
Setup
Dans le dossier 📂 setup se trouve le code généré automatiquement par le moteur de Netuno qui définit les schémas de base de données, et c'est aussi là que nous pouvons placer le chargement de données essentiel au fonctionnement de l'application.
Le script _start.js est exécuté avant de commencer le traitement de construction de la base de données.
Le script _end.js est exécuté après la fin du traitement de construction de la base de données.
En fonction de la construction de la structure de données, Netuno crée ici dans le dossier 📂 setup automatiquement le code nécessaire pour que toute la structure de données soit recréée dans une nouvelle base de données, ou pour recréer ce qui manque dans une autre base de données où l'application serait éventuellement exécutée.
Templates
Le dossier 📂 templates contient le contenu HTML des pages de backoffice de l'application, qui sont générées par le serveur Netuno.
Dans le dossier 📂 dev se trouve le fichier dashboard.html qui permet la modification de l'espace de travail en mode construction du développeur.
Le fichier dashboard.html qui se trouve à la racine des templates contient le HTML de l'espace de travail général du backoffice.
Templates natifs
Dans le dossier 📂 _, tout template général peut être remplacé, c'est-à-dire que les templates par défaut de Netuno peuvent être modifiés.
Si le nom des dossiers et/ou des fichiers correspond à ceux des templates natifs dans ce dossier, alors le template qui se trouve dans ce dossier est utilisé à la place du template natif.
C'est-à-dire qu'il suffit de répliquer la même structure du template natif dans le dossier 📂 _ pour le remplacer.
Scripts
Les templates de scripts injectent des fichiers de code JavaScript à la fin des pages dans le but suivant :
scripts.htmlajouter du code JavaScript à la fin de la page de backoffice.scripts_dev.htmlajouter du code JavaScript à la fin de la page de la zone de construction du développeur.scripts_login.htmlajouter du code JavaScript à la fin de la page de connexion.
Styles
Les templates de styles injectent des fichiers de styles au début des pages dans le but suivant :
styles.htmlajouter du code CSS au début de la page de backoffice.styles_dev.htmlajouter du code CSS au début de la page de la zone de construction du développeur.styles_login.htmlajouter du code CSS au début de la page de connexion.