title |
---|
webservice library - Script HTTP JSON APIs (Web Services); Load (Micro) Web Services At-Runtime and More. |
Get a free wiener lager, welsh red ale or kriek lambic beer delivered to your home (computer) in JSON and much much more
github: rubylibs/webservice, rubygems: webservice, rdoc: webservice ++ more: comments on reddit, please!
The webservice library lets you script HTTP JSON APIs also known as
web services or microservices in classy Sinatra 2.0-style get
/ post
methods
with Mustermann 1.0 route / url pattern matching.
You can load web 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
# server.rb
require 'webservice'
class App < Webservice::Base
get '/' do
'Hello, world!'
end
end
App.run!
and to run type
$ ruby ./server.rb
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
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
# to be done
...