Cursos / Informática para Internet / Plataformas de aplicações Web / Aula
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.
Website 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:
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:
O Sinatra tem um comportamento padrão (que você pode mudar, claro) quando se acessa uma rota inexistente. Vamos tentar:
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