menu

SHARKLABS

Use Sails.js para criar uma REST API de um sistema legado

/
/
Use Sails.js para criar uma REST API de um sistema legado
bookmark Node.js, REST-API access_time

O que é um sistema legado?

Segundo o dicionário Legado é algo antigo que é transmitido de uma geração para outra. Desta forma um sistema legado é um software construído no passado com técnicas que são diferentes das utilizadas atualmente.

Logo vem aqueles questionamentos:

  • Por que esse sistema ainda é utilizado?
  • Por que não é trocado de sistema?
  • Por que não criamos um novo sistema?

São perguntas que as vezes são difíceis de responder, mas normalmente trocar esse sistema não é tão fácil. Os motivos podem estar relacionados à regras de negócio, quandro de pessoal, falta de investimentos, etc.

Alguém precisa de uma REST API

Certo dia alguém precisa fazer uma integração com o tal sistema legado. Atualmente uma boa técnica de integração são as REST API, mas obviamente esse software antigo não está preparado para receber tal funcionalidade.

E agora? O que fazer?

Opções para criar uma REST API

Existem empresas especializadas neste segmento e que possuem boas ferramentas para solucionar o problema. Inclusive é muito comum essas empresas oferecerem serviços de consultoria relacionados.

Porém isso não é barato, algumas ferramentas são bem caras, uma vez que isso não é tarefa fácil.

Eu enfrentei um caso desse e confesso que procurei bastante até encontrar uma boa solução, embora ela estivesse mais perto do que eu imaginava.

O que eu pensei para resolver este problema?

Inicialmente eu pensei em desenvolver uma aplicação em NodeJs ou PHP para me conectar no banco de dados do sistema legado e disponibilizar várias ações por meio de REST API.

Até fiz um protótipo, onde eu executava uns comandos SQL, traduzia o nome dos campos para o inglês e convertia para JSON para retorno.

Vale ressaltar que a tradução dos campos era algo necessário, uma vez que o nome dos campos do sistema legado não seguiam um padrão. Sinceramente eram nomes horríveis e, muitas vezes, não tinham relação com a informação armazenada.

Mas não ficou legal. Sinceramente esse protótipo ficou uma "gambiarra".

Em busca de uma solução Open Source

Depois de muita reflexão, cheguei a conclusão que buscaria alguma solução Open Source e encontrei bastante coisa. Fiquei dias testando várias ferramentas e frameworks.

Sinceramente, nada me agradou. Até estava desanimado e cogitando voltar a utilizar o protótipo feito anteriormente.

Sails.js: Já ouvi falar

Como participo de alguns grupos relacionados a Ruby On Rails já havia ouvido do Sails.js. Então, partiu para última tentativa.

No primeiro teste com Sails.js já vi que era isso que eu queria. Fiquei surpreso com sua facilidade para criar uma REST API e acessar o banco de dados.

O Sails.js torna tudo mais fácil

O jeito que ele mapeia os campos no Model foi perfeito para traduzir o nome dos campos. O Waterline (camada de acesso aos dados) é ótima executar comandos SQL de uma maneira fácil e também disponibiliza drivers para diversos bancos de dados.

A propósito, o Waterline é bem parecido com o ActiveRecord do Ruby On Rails, o que facilitou muito o aprendizado.

Outra recurso fantástico é o Blueprint, que torna muito fácil criar rotas e ações para os Models que você criou.

Em produção

Quando a esmola é demais o santo desconfia né? Mas não foi o caso.

Este aplicativo está em produção desde fevereiro 2018 e não tenho o que reclamar. Se você precisa se conectar a um sistema ou banco de dados legado, eu recomendo Sails.js.

Dúvidas ou sugestões é só entrar em contato. Abraço.

Autor
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." Martin Fowler