Project

webservice

0.0
No release in over 3 years
Low commit activity in last 3 years
webservice - yet another HTTP JSON API (web service) builder
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

~> 3.16
~> 4.0

Runtime

>= 1.0.0
>= 2.0.3
 Project Readme

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:

# 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.