webservice¶ ↑
webservice gem - yet another HTTP JSON API (web service) builder
-
home :: github.com/rubylibs/webservice
-
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.