Description
A Rack compatible JSON-RPC2 server domain specific language (DSL) - allows JSONRPC APIs to be defined as mountable Rack applications with inline documentation, authentication and type checking.
e.g.
class Calculator < JSONRPC2::Interface
title "JSON-RPC2 Calculator"
introduction "This interface allows basic maths calculations via JSON-RPC2"
auth_with JSONRPC2::BasicAuth.new({'user' => 'secretword'})
section 'Simple Ops' do
desc 'Multiply two numbers'
param 'a', 'Number', 'a'
param 'b', 'Number', 'b'
result 'Number', 'a * b'
def mul args
args['a'] * args['b']
end
desc 'Add numbers'
example "Calculate 1 + 1 = 2", :params => { 'a' => 1, 'b' => 1}, :result => 2
param 'a', 'Number', 'First number'
param 'b', 'Number', 'Second number'
optional 'c', 'Number', 'Third number'
result 'Number', 'a + b + c'
def sum args
val = args['a'] + args['b']
val += args['c'] if args['c']
val
end
end
end
Required Ruby Version
>= 0
Authors
Geoff Youngs
Versions
- 0.3.0 February 10, 2023 (132 KB)
- 0.2.0 April 14, 2022 (132 KB)
- 0.1.1 January 04, 2014 (128 KB)
- 0.1.0 January 04, 2014 (127 KB)
- 0.0.9 September 03, 2012 (94.5 KB)