ServiceStack

Installation

Add this line to your application's Gemfile:

gem 'service-stack'

And then execute:

$ bundle

Or install it yourself as:

$ gem install service-stack

Usage

With Rails

  1. Create a new controller like this (in app/controllers)

    class ActionHandlerController < ApplicationController
    FUNCTIONS = {
        'Foo' => FooFunction
    }
    
    rescue_from ServiceStack::FunctionError do
        render json: { error: 'Action not found' }, status: 400
    end
    
    def index
        function_klass = FUNCTIONS.fetch(params.require(:Action), nil)
        return head(400) if function_klass.nil?
    
        function = function_klass.new(x: 1)
    
        render(json: function.perform, status: 200)
    end
    end
    
  2. Create Action class (in app/actions)

    class CreateFooFunction < ServiceStack::Function
    def perform
        { foo: { x: 1 } }
    end
    end
    
  3. Add route (in config/routes.rb)

    match '/', to: 'action_handler#index', via: %w[get post]
    

License

The gem is available as open source under the terms of the MIT License.

Code of Conduct

Everyone interacting in the ServiceStack project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.