webservice
webservice gem - yet another HTTP JSON API (web service) builder
Usage
Dynamic Example •
Classic Example •
Rackup Example
Dynamic Example
You can load services at-runtime from files using Webservice.load_file
.
Example:
get '/' do
'Hello, world!'
end
and
require 'webservice'
App = Webservice.load_file( './service.rb' )
App.run!
and to run type
$ ruby ./server.rb
Classic Example
require 'webservice'
class App < Webservice::Base
get '/' do
'Hello, world!'
end
end
App.run!
and to run type
$ ruby ./server.rb
Rackup Example
Use config.ru
and rackup
. Example:
require `webservice`
class App < Webservice::Base
get '/' do
'Hello, world!'
end
end
run App
and to run type
$ rackup # will (auto-)load config.ru
Note: config.ru
is a shortcut (inline)
version of Rack::Builder.new do ... end
:
require 'webservice'
class App < Webservice::Base
get '/' do
'Hello, world!'
end
end
builder = Rack::Builder.new do
run App
end
Rack::Server.start builder.to_app
and to run type
$ ruby ./server.rb
"Real World" Examples
See
beerkit / beer.db.service
-
beer.db HTTP JSON API (web service) scripts e.g.
get '/beer/(r|rnd|rand|random)' do
Beer.rnd
end
get '/beer/:key'
Beer.find_by! key: params['key']
end
get '/brewery/(r|rnd|rand|random)' do
Brewery.rnd
end
get '/brewery/:key'
Brewery.find_by! key: params['key']
end
...
worlddb / world.db.service
-
world.db HTTP JSON API (web service) scripts
get '/countries(.:format)?' do
Country.by_key.all
end
get '/cities(.:format)?' do
City.by_key.all
end
get '/tag/:slug(.:format)?' do
Tag.find_by!( slug: params['slug'] ).countries
end
...
sportdb / sport.db.service
-
sport.db (football.db) HTTP JSON API (web service) scripts
License
The webservice
scripts are dedicated to the public domain.
Use it as you please with no restrictions whatsoever.