Esse projeto foi criado para servir como um ponto de partida para aplicações baseadas em Sinatra, seja apenas para backends ou frontends simples.
Sinatra é uma alternativa leve e eficiente para projetos que não necessitam da complexidade do Rails, ideal para aplicações rápidas e de pequeno a médio porte.
Saiba mais sobre o sinatra aqui
- Ruby 3.1.6
- Gem Bundler
- Clone o repositório
- Instale as dependências:
bundle install
rackup config.rurackup config.ru -p 4567bundle exec rackup config.rubundle exec puma config.ru├── app/
│ ├── app.rb # Classe principal da aplicação
│ ├── controllers/ # Classes de controle
│ │ └── health_controller.rb
│ ├── models/ # Classes de modelo (vazio)
│ └── views/ # Templates de visualização (vazio)
├── config/
│ ├── routes.rb # Definições de rotas
│ └── environment.rb # Configuração do ambiente
├── config.ru # Arquivo de configuração do Rack
├── Gemfile # Dependências das gems
└── Dockerfile # Configuração do Docker
GET /health- Endpoint de verificação de saúde 💚- Retorna:
{"status":"ok","service":"my-microservice"}
- Retorna:
Depois que o servidor estiver rodando, você pode testar o endpoint de saúde:
curl http://localhost:9292/healthResposta esperada:
{ "status": "ok", "service": "my-microservice" }A aplicação inclui suporte ao Docker. Para executar com Docker:
# Construir a imagem
docker build -t sinatra-app .
# Executar o container
docker run -p 4567:4567 sinatra-appOu use docker-compose:
docker-compose up-
Crie um novo controller em
app/controllers/:require "sinatra/base" class SeuController < Sinatra::Base get "/sua-rota" do # Sua lógica aqui end end
-
Adicione-o ao
config/routes.rb:require_relative "../app/controllers/seu_controller" class Routes < Sinatra::Base use HealthController use SeuController # Adicione esta linha end
A aplicação usa a seguinte estrutura de configuração:
config/environment.rb- Carrega gems e configuração básicaconfig/routes.rb- Define o stack de middleware de rotasapp/app.rb- Classe principal da aplicação com configurações
- Conflitos de gems 💎: Execute
bundle updatepara resolver conflitos de versão - Porta já em uso 🚪: Use uma porta diferente com a flag
-p - Gems ausentes 📦: Execute
bundle install
Os logs da aplicação aparecerão no terminal onde você iniciou o servidor. Procure por:
- Mensagens de inicialização do servidor
- Logs de requisições
- Mensagens de erro
- Faça um fork do repositório
- Crie uma branch para sua feature
- Faça suas alterações
- Teste suas alterações
- Envie um pull request
Se você encontrar problemas, verifique:
- ✅ Se todas as gems estão instaladas
- ✅ Se não há conflitos de versão
- ✅ Se a porta não está sendo usada por outro processo
- ✅ Se o Ruby está na versão correta (3.4.6)
Feito com ❤️ usando Sinatra