Server
Desenvolvimento do backend e API.
Pasta do Servidor
A pasta 📂 server contém um conjunto de arquivos e pastas que formam o backend da aplicação.
Tudo que está na pasta 📂 server é utilizado no processamento do servidor de backendm, como integrações, API,
base de dados, segurança e autenticação, Cron Jobs, entre muitos outros.
Estrutura da Pasta
Na pasta 📂 server encontra-se a seguinte estrutura:
./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
Nas 📂 actions pode ser adicionado acções customizações à medida (hooks) nas operações de CRUD dos formulários
gerados automaticamente para o backoffice, de acordo com a estrutura de dados muita intervenção de dados pode ser
feita aqui.
Por exemplo ao revemor um cliente é necessário remover todas as suas encomendas, ou ao criar um novo produto deve ser integrado com outro sistema. Enfim, qualquer desenvolvimento relacionado diretamente com dados pode ser feito aqui.
As actions são inspiradas nas triggers de base de dados só que ao nível da execução de código.
Portanto pode ser programado operações específicas na criação, alteração e remoção de dados.
Components
Os 📂 components são utilizados para definir tipos customizados de campos nos formulários de backoffice, que
podem realizar a própria manipulação de dados.
Pode ser criado componentes através de scripts para fornecer um novo tipo de campo específico na aplicação.
Core
A pasta 📂 core permite a injeção de código no fluxo de processamento dos pedidos HTTP.
Também é utilizada para partilhar código entre os diversos serviços e outros.
O _config.js é executado após a configuração ser carregada em cada pedido HTTP, é executado após o script de
configuração da ambiente que encontra-se na pasta 📂 config da aplicação.
O _init.js serve para injetar alguma instrução quando a aplicação é inicializada pela primeira vez.
Processamento dos pedidos HTTP
No fluxo de processamento dos pedidos HTTP para qualquer URL da aplicação é executado os respectivos scripts:
_request_start.jsé executado quando o pedido HTTP chega ao servidor do Netuno._request_url.jsé executado quando a URL é processada pelo Netuno, pode ser alterada a URL para outro destino._request_close.jsé executado quando a resposta ao pedido HTTP é fechada._request_end.jsé executado quando o pedido HTTP é concluído definitivamente._request_error.jsé executado quando acontece algum erro no processamento do pedido HTTP.
Processamento dos Serviços de API
No fluxo de processamento de qualquer serviço de API da aplicação é executado os seguintes scripts:
_service_config.jsé executado antes de iniciar a execução do serviço, serve para definir as configurações de execução do serviço entre outras coisas. Pode ser definido se o serviço pode ou não ser executado, ou seja um controle de segurança no acesso ao serviço da API._service_start.jsé executado logo que algum serviço começa a ser processado._service_end.jsé executado depois que é finalizado o processamento de algum serviço._service_error.jsé executado quando acontece algum erro no processamento de algum serviço.
Services - API
É na pasta 📂 services que são criados os serviços que formam a API aplicacional.
Os serviços podem ser escritos em diversas linguagens Javascript, Python, Java, Kotlin, Ruby ou Groovy.
Como o Netuno é poliglota qualquer arquivo de script pode ser alterado para outra linguagem de programação suportada, basta ter a extensão dos arquivos de acordo com a linguagem.
Não são necessárias configurações adicionais em função da linguagem de programação usada, basta criar o arquivo do serviço com a extensão correcta correspondente com a linguagem de programação.
Setup
Na pasta 📂 setup é onde fica o código gerado automaticamente pelo motor do Netuno que definem os schemas de
base de dados, e também é onde podemos colocar o carregamento de dados que é essencial para o fucionamento da
aplicação.
O script _start.js é executado antes de iniciar o processamento de construção da base de dados.
O script _end.js é executado após o processamento de construção da base de dados ser finalizado.
De acordo com a construção da estrutura de dados o Netuno cria aqui na pasta de 📂 setup automaticamente o código
necessário para toda a estrutura de dados ser recriada em uma nova base de dados, ou recriar algo que falte em
outra base de dados que a aplicação seja eventualmente executada.
Templates
A pasta 📂 templates contém o contéudo HTML das páginas de backoffice da aplicação, que são geradas pelo servidor
do Netuno.
Na pasta 📂 dev contém o arquivo dashboard.html que permite a alteração da área de trabalho no modo de
construção do desenvolvedor.
O dashboard.html que está na raíz dos templates contém o HTML da área de trabalho geral do backoffice.
Templates Nativos
Na pasta 📂 _ qualquer template geral pode ser substituído, ou seja os templates padrão do Netuno podem ser
alterados.
Se o nome de pastas e/ou de arquivos coincidir com os dos templates nativos dentro desta pasta, então é utilizado o template que encontra-se nesta pasta em vez do template nativo.
Ou seja, basta replicar a mesma estrutura do template nativo dentro da pasta 📂 _ para substitui-lo.
Scripts
Os templates de scripts injetam arquivos de código JavaScript no fim das páginas com o seguinte propósito:
scripts.htmladicionar código JavaScript no fim da página de backoffice.scripts_dev.htmladicionar código JavaScript no fim da página da área de construção do desenvolvedor.scripts_login.htmladicionar código JavaScript no fim da página de login.
Styles
Os templates de styles injetam arquivos de estilos no início das páginas com o seguinte propósito:
styles.htmladicionar código CSS no início da página de backoffice.styles_dev.htmladicionar código CSS no início da página da área de construção do desenvolvedor.styles_login.htmladicionar código CSS no início da página de login.