webservice
webservice gem - yet another HTTP JSON API (web service) builder
- home :: github.com/rubylibs/webservice
- bugs :: github.com/rubylibs/webservice/issues
- gem :: rubygems.org/gems/webservice
- rdoc :: rubydoc.info/gems/webservice
Usage
Dynamic Example • Classic Example • Rackup Example
Dynamic Example
You can load services at-runtime from files using Webservice.load_file
.
Example:
# service.rb
get '/' do
'Hello, world!'
end
and
# server.rb
require 'webservice'
App = Webservice.load_file( './service.rb' )
App.run!
and to run type
$ ruby ./server.rb
Classic Example
# server.rb
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:
# config.ru
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
:
# server.rb
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 # special keys for random beer
Beer.rnd
end
get '/beer/:key'
Beer.find_by! key: params['key']
end
get '/brewery/(r|rnd|rand|random)' do # special keys for random brewery
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 # sort/order by key
end
get '/cities(.:format)?' do
City.by_key.all # sort/order by key
end
get '/tag/:slug(.:format)?' do # e.g. /tag/north_america.csv
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.