Stand up simple APIs for consumption.
Apiary let's you use any existing class and turn it into an API. For instance, say you have a class like this.
class Temperature def c2f(val) Float(val) * 9 / 5 + 32 end end
You can convert this to an API by annotating this class with four lines.
require 'apiary' class Temperature include Apiary # Include Apiary as a module in your class version '1.0' # Specifies a version prefix for your api get # Marks this method as accessible from GET def c2f(val) # This is now available at /1.0/c2f/:val Float(val) * 9 / 5 + 32 end end
Now, your API is complete! You can run this with
Temperature.run. This will create a server on port 3000. You can hit it with
And you'll get back
delete are supported. You can also supply a path after any verb to have a custom path. Also, the current Rack env hash is available under
rack_env if you need to take a look at the current request.
If you want to use this in async mode, put an
a in front of the method annotation. For instance
aget def c2f(val) EM.add_timer(0.1) do async_response << "The temperature is :" async_response.end(Float(val) * 9 / 5 + 32) end end