Sinatra

Web site: http://sinatrarb.com/

O Sinatra é um micro-framework para a linguagem de programacão Ruby que tem por objetivo ser o mais simples e mínimo possível na criação de serviços que respondem a requisições HTTP. Ele somente cuida do processamento das rotas e executa funções Ruby para cada uma delas, assim como o Express, mas não tem nenhuma outra funcionalidade, cabendo a você adicionar o que desejar.

Descrição imagemWebsite do Sinatra. Fonte: http://sinatrarb.com/

Ele utiliza a linguagem de programação Ruby (https://www.ruby-lang.org) que pode ser explorada pelo navegador, se desejar aprender mais: https://try.ruby-lang.org/

Uma aplicação mínima no sinatra tem um seguinte formato (em Ruby):

require 'sinatra'
require 'json'

set :port, 3000

get '/ola_servidor' do
  content_type :json
  { message: 'Oi colega. Tudo em paz?' }.to_json
end

get '/que_horas_sao_por_favor' do
  content_type :json
  { horaAtual: Time.now.strftime("%d/%m/%Y %H:%M") }.to_json
end

Abaixo, dois comandos no terminal. Um para instalar o sinatra no sistema, utilizando o comando para instalar de pacotes do Ruby ("gem install sinatra") e outro para executar o programa escrito acima que está no arquivo server.rb:

Descrição imagem

O comando require 'sinatra' inclui o sinatra no seu programa Ruby. O comando require 'json' adiciona suporte a conversão de objetos para JSON no Ruby com o método .to_json.

set :port, 3000 configura a porta do sinatra para ser a 3000.

As funções get são chamadas com com o parâmetro passado como uma string representando a rota que deseja processar. No Ruby não é necessário usar parênteses para se executar funções e os limitadores "do" e "end" definem o início e fim da função, nesse caso é um bloco de código que está sendo executado quando essa rota é acessada.

content_type :json adiciona no Header da resposta o tipo de conteúdo como JSON

A última linha de cada bloco é o retorno do bloco, no caso da aplicação acima é { message: 'Oi colega. Tudo em paz?" }.to_json, ou seja, um objeto Ruby convertido para uma string json que vai para o navegador.

Acessando no navegador:

Descrição imagem

O Sinatra tem um comportamento padrão (que você pode mudar, claro) quando se acessa uma rota inexistente. Vamos tentar:

Descrição imagem

Veja que ele mostra uma mensagem de erro estilizada e inclusive sugere que código você deve criar na sua aplicação para que essa rota não implementada seja criada com sucesso.


Versão 5.3 - Todos os Direitos reservados