Uma base para APIs em Ruby, usando Sinatra, ActiveRecord e PostgreSQL
Pensada pra quem quer começar rápido.
Ruby 3.4+ | Linguagem base
Sinatra 4 | Framework web
ActiveRecord | ORM para Ruby
Puma | Servidor HTTP
Dotenv | Gerenciamento de variáveis de ambiente
Rerun | Hot reload para desenvolvimento
- Clone o projeto
git clone https://github.com/noadevbr/22ge.git
cd 22ge-
Instale as dependências
bundle install
-
Crie o banco de dados
bundle exec rake db:create bundle exec rake db:migrate
bundle exec rake serverbundle exec rake server:devCada módulo pode registrar seu própria rota.
Exemplo:
# src/routes/home/router.rb
# frozen_string_literal: true
require 'sinatra/base'
require 'sinatra/namespace'
module HomeRouter
PREFIX = '/'
def self.registered(app)
app.get '/' do
content_type :json
{ hello: "world" }.to_json
end
end
endE o RouterManager você precisa colocar sua rota, exemplo usando esse HomeRouter:
# frozen_string_literal: true
require_relative './home/router'
module RouterManager
def self.registered(app)
routers = [
HomeRouter
]
routers.each do |router|
prefix = router.const_get(:PREFIX)
app.namespace(prefix) { register router }
puts "✅ Router carregado: #{router} (prefix: #{prefix})"
end
end
end| Comando | Descrição |
|---|---|
rake server |
Inicia o servidor normalmente |
rake server:dev |
Inicia com hot reload (rerun) |
Com o servidor rodando em http://localhost:4567, teste com:
curl -X GET http://localhost:4567/Este projeto é open source, feito com 💖 pela Noa.