Olá Mundo! com Sinatra

Vamos criar um servidor Sinatra simples que responde a / hello-world

Primeiro, crie uma pasta para nosso exemplo:

$ mkdir sinatra-hello-world
$ cd sinatra
-hello-world

Em seguida, crie um Gemfile com as joias necessárias:

$ nano Gemfile
source "http://rubygems.org"

gem
'rake'

gem
'sinatra', require: 'sinatra'

Crie um servidor Sinatra, com um url simples / hello-world:

$ nano server.rb
# Requires the Gemfile
require
'bundler' ; Bundler.require

# By default Sinatra will return the string as the response.
get
'/hello-world' do
"Hello World!"
end

Inicie o servidor a partir do terminal executando o arquivo server.rb com ruby.

$ ruby server.rb

INFO
WEBrick 1.3.1
INFO ruby
1.9.3 (2012-04-20) [x86_64-darwin11.2.0]
== Sinatra/1.4.4 has taken the stage on 4567 for development with backup from WEBrick
INFO
WEBrick::HTTPServer#start: pid=3142 port=4567

Por padrão, nosso exemplo Sinatra será executado em http://127.0.0.1:4567 usando WEBbrick como servidor.

A seguir, vamos testar a resposta usando Curl – como esperado, o url / hello-world retorna “Hello World!”

$ curl http://localhost:4567/hello-world
Hello World!%

A seguir, vamos adicionar uma rota que lida com uma solicitação JSON para / hello-world – este exemplo é típico de uma API que pode ser consumida por dispositivos móveis ou aplicativos angular.js .

$ nano server.rb
require 'JSON'

get
'/hello-world.json' do
content_type
:json # Content-Type: application/json;charset=utf-8

# Use to_json to generate JSON based on the Ruby hash
{greeting: 'Hello World!'}.to_json
end

Reinicie o servidor

Ctrl-C

$ ruby server
.rb

Use Curl para testar o novo URL json (o parâmetro -v mostra cabeçalhos HTTP e resposta)

$ curl -v http://localhost:4567/hello-world.json

> GET /hello-world.json HTTP/1.1
>
< HTTP/1.1 200 OK
< Content-Type: application/json;charset=utf-8

{"greeting":"Hello World!"}%

Leia mais sobre Sinatra