Configurando e Executando Projetos LoopBack no ServBay
O que é LoopBack?
LoopBack é um framework open source altamente escalável para Node.js, desenvolvido pela IBM, projetado para construção rápida de APIs e microsserviços. Ele utiliza o conceito de desenvolvimento orientado a modelos (MDD), permitindo que desenvolvedores definam modelos de dados de maneira eficiente e gerem automaticamente APIs RESTful robustas. O framework LoopBack possui uma gama de recursos integrados, como conectores para bancos de dados, autenticação e autorização de usuários, explorador de API, e suporte a vários bancos de dados e protocolos.
Principais Características e Benefícios do LoopBack
- Desenvolvimento Orientado a Modelos (MDD): Defina modelos de dados de maneira intuitiva e o framework gera automaticamente os endpoints de API e validação necessários.
- Suporte a Múltiplos Bancos de Dados: Conecte facilmente aos principais bancos de dados (como MongoDB, MySQL, PostgreSQL, MariaDB etc.), além de serviços RESTful, SOAP e outros.
- Poderosa CLI: A CLI do LoopBack oferece uma variedade de comandos para simplificar tarefas como inicialização de projetos, definição de modelos, configuração de fontes de dados e mais.
- Modularidade e Extensibilidade: Estrutura flexível que facilita a integração de componentes, bibliotecas e serviços de terceiros de acordo com necessidades específicas.
- Recursos de Segurança Integrados: Mecanismos de autenticação e autorização prontos para uso, facilitando a criação de APIs seguras.
Com o LoopBack, desenvolvedores aumentam consideravelmente a produtividade ao criar backends para aplicações web e APIs de alta performance e fácil manutenção.
Configurando e Executando um Projeto LoopBack com o ServBay
Neste guia, você verá como usar o ambiente Node.js fornecido pelo ServBay para criar e executar um projeto LoopBack. Vamos utilizar o recurso de "Sites" do ServBay para configurar um servidor web local, usando proxy reverso para encaminhar requisições externas para a porta onde o aplicativo LoopBack está rodando, trazendo acesso local prático e facilitando o desenvolvimento e depuração.
Criando um Projeto LoopBack
Instale a CLI do LoopBack
Antes de começar, certifique-se de ter instalado e ativado o pacote Node.js no ServBay. Em seguida, abra o terminal e instale a CLI do LoopBack globalmente usando o npm:
bashnpm install -g @loopback/cli
1Inicialize um Projeto
Navegue até o diretório raiz dos sites recomendados pelo ServBay:
/Applications/ServBay/www
e inicialize um novo projeto com a CLI do LoopBack. Recomendamos usar nomes em minúsculo com hífen, por exemplo,servbay-loopback-app
:bashcd /Applications/ServBay/www lb4 app servbay-loopback-app
1
2A CLI irá guiá-lo pelas configurações do projeto, como seleção de recursos (REST API, serialização, autenticação etc.) e estruturação do projeto. Escolha conforme suas necessidades.
Instale as Dependências do Projeto
Entre no diretório do novo projeto e instale as dependências necessárias do Node.js:
bashcd servbay-loopback-app npm install
1
2
Personalizando o Endpoint /ping
(Opcional)
Para demonstrar o acesso ao seu app via ServBay, podemos modificar o endpoint padrão /ping
para retornar uma resposta personalizada.
Edite o arquivo
src/controllers/ping.controller.ts
Localize o arquivo
src/controllers/ping.controller.ts
no projeto e ajuste seu conteúdo para que a rota/ping
retorne a frase "Hello ServBay!":typescriptimport {get} from '@loopback/rest'; export class PingController { constructor() {} @get('/ping') ping(): string { // Altere a resposta para "Hello ServBay!" return 'Hello ServBay!'; } }
1
2
3
4
5
6
7
8
9
10
11
Executando o Projeto em Modo de Desenvolvimento
Durante o desenvolvimento, o aplicativo LoopBack geralmente roda com um servidor embutido para facilitar testes e iteração. O acesso a este servidor se dará pelo proxy reverso do ServBay.
Execute o Servidor de Desenvolvimento
No diretório raiz do projeto, inicie o aplicativo LoopBack via terminal. Você pode definir a porta com a variável de ambiente
PORT
— por exemplo, usando8585
:bashcd /Applications/ServBay/www/servbay-loopback-app PORT=8585 npm start
1
2Após o início, o terminal mostrará algo como "Server is running at http://[::1]:8585".
Configure o Site (Proxy Reverso) no ServBay
Abra o painel de controle do ServBay e vá até a área "Sites". Clique em adicionar para criar um novo site de proxy reverso, assim, as requisições feitas ao domínio externo e porta serão encaminhadas para o endereço interno do app LoopBack:
- Nome: Exemplo -
Meu primeiro site LoopBack de desenvolvimento
(apenas identificação) - Domínio: Exemplo -
servbay-loopback-dev.servbay.demo
(URL pelo qual você acessará no navegador) - Tipo do Site: Selecione
Proxy Reverso
- Endereço IP:
127.0.0.1
(aplicativo LoopBack rodando localmente) - Porta:
8585
(porta do aplicativo LoopBack)
Salve e aplique as mudanças no ServBay. Ele configurará automaticamente o DNS local (ajustando
/etc/hosts
ou via ServBay Helper Tool) e o servidor web (Caddy ou Nginx), permitindo que o domínio aponte corretamente.Para mais instruções sobre adicionar sites de proxy reverso, veja: Adicionando um site Node.js para desenvolvimento.
- Nome: Exemplo -
Acesse o Aplicativo em Modo de Desenvolvimento
No navegador, acesse o domínio e caminho do endpoint configurado, por exemplo:
https://servbay-loopback-dev.servbay.demo/ping
.Como o ServBay configura SSL e certificados automaticamente para websites locais (usando ServBay User CA ou Public CA), você pode acessar seu site de desenvolvimento com HTTPS, simulando o ambiente de produção e identificando possíveis problemas SSL antecipadamente. Saiba mais sobre SSL no ServBay em: Usando SSL para proteger o site.
Implantação em Produção (Opcional)
Ao preparar seu app LoopBack para produção, geralmente é necessário executá-lo em modo otimizado, com melhor desempenho e menos logs de depuração.
Execute o Servidor em Modo Produção
No diretório do projeto, inicie o LoopBack em modo produção, especificando a porta, por exemplo,
8586
e o ambiente comNODE_ENV
:bashcd /Applications/ServBay/www/servbay-loopback-app PORT=8586 NODE_ENV=production npm start
1
2Configure o Site de Produção no ServBay (Proxy Reverso)
Retorne ao painel do ServBay em "Sites", crie ou edite um site de proxy reverso direcionando para o app em produção:
- Nome: Exemplo -
Meu primeiro site LoopBack de produção
- Domínio: Exemplo -
servbay-loopback-prod.servbay.demo
- Tipo do Site:
Proxy Reverso
- Endereço IP:
127.0.0.1
- Porta:
8586
(porta da versão de produção)
Salve e aplique as alterações.
- Nome: Exemplo -
Acesse o Aplicativo em Produção
Em seu navegador, acesse o domínio de produção, como
https://servbay-loopback-prod.servbay.demo/ping
, para verificar se o app está funcionando corretamente. O ServBay também fornecerá suporte HTTPS automaticamente.
Conectando Bancos de Dados
O LoopBack suporta diversos bancos de dados através de conectores. O ServBay disponibiliza pacotes de MySQL, MariaDB, PostgreSQL, MongoDB e Redis, que podem ser ativados com facilidade; depois, basta configurar seu projeto LoopBack para conectá-los.
Abaixo estão exemplos para conexão com os bancos de dados mais comuns oferecidos pelo ServBay. Ajuste os parâmetros conforme seu ambiente.
Atenção: Os nomes de usuário e senhas nos exemplos abaixo são apenas ilustrativos. Use sempre as credenciais reais criadas ou configuradas por você no painel do ServBay para cada banco de dados.
Conectando ao MongoDB
Certifique-se de ter instalado e iniciado o MongoDB no ServBay. Instale o conector MongoDB do LoopBack:
bashnpm install --save @loopback/connector-mongodb
1Em seguida, configure a fonte de dados em seu projeto (por exemplo em
src/datasources/mongodb.datasource.ts
):typescript// src/datasources/mongodb.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'mongodb', connector: 'mongodb', // MongoDB do ServBay roda por padrão em localhost:27017 url: 'mongodb://localhost:27017/servbay-loopback-app', // Altere para seu banco real host: 'localhost', port: 27017, user: '', // Informe o usuário se houver autenticação password: '', // Informe a senha se houver autenticação database: 'servbay-loopback-app', // Altere para seu banco real // Outras opções... }; export class MongodbDataSource extends juggler.DataSource { static dataSourceName = 'mongodb'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22Conectando ao Redis
Certifique-se de que o pacote Redis está instalado e iniciado no ServBay. Instale um conector Redis para LoopBack (atenção: não há um
@loopback/connector-redis
oficial; normalmente se usa oloopback-connector-redis
da comunidade ou integrações via bibliotecaredis
do Node.js):bashnpm install --save loopback-connector-redis # Ou outro conector compatível
1Depois, configure a fonte de dados (utilizando o estilo do
loopback-connector-redis
):typescript// src/datasources/redis.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'redis', connector: 'redis', // Redis do ServBay roda por padrão em localhost:6379 url: 'redis://localhost:6379', // Outras opções... }; export class RedisDataSource extends juggler.DataSource { static dataSourceName = 'redis'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17Observação: O uso de fontes de dados mudou do LoopBack 3 para o 4. O exemplo acima segue o padrão do conector do LoopBack 3; no LoopBack 4, o recomendado é utilizar o decorador
@datasource
da biblioteca@loopback/repository
para configurações modernas. Confira sempre a documentação oficial para exemplos atualizados, mas os parâmetros comohost
,port
,user
,password
, edatabase
permanecem os mesmos.Conectando ao MariaDB (ou MySQL)
Certifique-se de ter o MariaDB ou MySQL instalado e iniciado pelo ServBay. O conector do MySQL é compatível com MariaDB. Instale o conector MySQL do LoopBack:
bashnpm install --save @loopback/connector-mysql
1Depois, adicione as configurações:
typescript// src/datasources/mariadb.datasource.ts ou mysql.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'mariadb', // ou 'mysql' connector: 'mysql', // uso do conector para MySQL // url: '', // pode ser usado no formato url ou individualmente como abaixo host: 'localhost', // banco do ServBay roda em localhost port: 3306, // porta padrão do MariaDB/MySQL user: 'root', // usuário padrão, se não alterado password: 'password', // << Substitua pela senha real configurada no ServBay >> database: 'servbay_loopback_app', // Altere para seu banco real // Outras opções... }; export class MariaDbDataSource extends juggler.DataSource { static dataSourceName = 'mariadb'; // ou 'mysql' constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21Observação: O campo
password: 'password'
é apenas exemplo. Consulte o painel do ServBay para achar ou definir a senha real do usuário root MariaDB/MySQL antes de configurar.Conectando ao PostgreSQL
Certifique-se que o PostgreSQL está instalado e em funcionamento no ServBay. Instale o conector para PostgreSQL:
bashnpm install --save @loopback/connector-postgresql
1Depois, configure no projeto:
typescript// src/datasources/postgresql.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'postgresql', connector: 'postgresql', // url: '', // pode utilizar url, ou configurar host, port individualmente host: 'localhost', // ServBay PostgreSQL roda em localhost port: 5432, // porta padrão PostgreSQL user: 'user', // << Substitua pelo usuário correto no ServBay >> password: 'password', // << Substitua pela senha correta >> database: 'servbay_loopback_app', // Altere para o nome real do seu banco // Outras opções... }; export class PostgresqlDataSource extends juggler.DataSource { static dataSourceName = 'postgresql'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21Atenção: Os parâmetros
user
epassword
são exemplos. Consulte o painel de bancos de dados do ServBay para obter ou criar estes dados antes de configurar o acesso.
Resumo
Seguindo este roteiro, você saberá como criar, configurar e rodar um projeto LoopBack em Node.js usando o ServBay como ambiente de desenvolvimento local. Também aprendeu a acessar o app via proxy reverso utilizando o recurso "Sites" do ServBay — tanto em ambiente de desenvolvimento quanto produção — além de conectar o LoopBack a diversos bancos de dados suportados pela plataforma.
O ServBay oferece um ambiente estável, integrado e prático para frameworks Node.js como o LoopBack, unificando servidor web, bancos de dados e runtimes de várias linguagens e simplificando o fluxo de trabalho do desenvolvedor. Com recursos de gerenciamento de sites, suporte SSL e integração de bancos de dados, seu desenvolvimento e testes locais tornam-se mais eficientes e seguros.