CRIEI uma nova forma de criar APIs! [não é framework] (defina mais e programe menos)
Tomato-X
Tomato-X é um backend experimental em Node.js que propõe um jeito novo de criar APIs.
Em vez de escrever rotas, controllers e handlers diretamente em código, você define toda a estrutura da API com arquivos JSON organizados em pastas.
O sistema percorre automaticamente um diretório de rotas, encontra arquivos index.json, valida o conteúdo e transforma cada configuração em uma rota HTTP funcional. Essa abordagem torna o projeto declarativo, previsível e fácil de modificar: você altera endpoints simplesmente modificando JSONs, sem tocar na lógica principal do servidor.
A ideia central é tratar rotas como dados, não como código. Isso abre portas para:
prototipação rápida de APIs,
experimentos com arquitetura de backend,
geração automática de APIs a partir de estrutura de pastas,
e padrões comunitários reutilizáveis.
Este projeto não busca substituir soluções como Express ou Fastify em produção, mas é um laboratório de ideias para pensar diferente sobre organização de backends.
O que são Distros
As distros são o coração do Tomato-X.
Elas funcionam como módulos comportamentais que introduzem ações reutilizáveis, tipos, respostas e formas de tratar erros.
Em vez de escrever lógica diretamente dentro das rotas, o arquivo JSON de cada rota referencia um identificador de distro seguido da ação que será executada. Isso permite:
padrão consistente entre projetos: rotas que usam a mesma distro executam o mesmo comportamento, sem duplicação de código;
compartilhamento comunitário: qualquer desenvolvedor pode criar e publicar uma distro com ações prontas (como conexão com banco, validações, respostas específicas, etc);
extensibilidade: novas distros podem adicionar tipos de dados, métodos de resposta ou integrações com serviços externos;
separação entre estrutura e lógica: o JSON descreve “o que” acontece, a distro descreve “como” acontece.
Uma rota típica com referência a distros ficaria assim:
{
"base": "generic:action_responsetxt",
"method": "GET",
"status": 200,
"response": "generic:response_responsetxt",
"catch_response": "generic:catch_response_responsetxt"
}
Nesse exemplo, a rota não contém código — ela aponta para uma ação (action_responsetxt) que pertence à distro generic.
A distro sabe como executar essa ação, como formatar a resposta e como lidar com erros.
Estrutura de rotas
Cada pasta dentro do diretório de rotas representa uma rota. Dentro dela existe um arquivo index.json que descreve como essa rota deve funcionar — incluindo método HTTP, status de resposta e qual ação será executada.
Por exemplo, você pode criar uma rota simples que responda:
GET /love-tomatos
e retorne o texto:
I love tomatos
apenas criando uma pasta e um arquivo JSON com essas informações.
Antes de qualquer rota ser ativada, o sistema verifica se o JSON está bem formado, se os métodos e status são válidos e se as distros referenciadas existem. Se há qualquer problema, o servidor não sobe — isso evita bugs silenciosos em produção.
Por que isso importa
Tomato-X é uma exploração de API declarativa e backend orientado a estrutura, não a código. Ele explora:
como separar completamente estrutura e execução,
como padronizar comportamento usando módulos (distros),
como validar configurações antes da execução,
como organizar backends de forma simples e legível.
Ele abre espaço para evoluções como:
middlewares declarativos,
gerenciamento de versões de rotas,
geração automática de documentação,
integração com ferramentas de design de API.
Contribua e siga o projeto
Tomato-X é experimental, aberto e pronto para ser explorado.
Se você curte ideias sobre arquitetura de software, APIs declarativas ou padrões modulares, dê uma olhada no código e participe:
👉 https://github.com/Nicolas-Asafe/tomato-x
Explore as distros existentes, proponha novas ações ou crie sua própria distro para compartilhar com a comunidade. A proposta aqui é pensar diferente sobre backend e construir algo novo juntos.