active_model_serializers/docs/howto/grape_integration.md
Benjamin Fleischer 26bcdbe44a Clean up docs
2016-08-17 16:16:13 -05:00

973 B

Back to Guides

The ActiveModelSerializers grape formatter relies on the existence of env['grape.request'] which is implemeted by Grape::Middleware::Globals. You can meet his dependency by calling it before mounting the endpoints.

In the simpliest way:

class API < Grape::API
  # @note Make sure this is above you're first +mount+
  use Grape::Middleware::Globals
end

or more like what is shown in current Grape tutorials:

module MyApi
  class ApiBase < Grape::API
    use Grape::Middleware::Globals

    require 'grape/active_model_serializers'
    include Grape::ActiveModelSerializers

    mount MyApi::V1::ApiBase
  end
end

You could meet this dependency with your own middleware. The invocation might look like:

module MyApi
  class ApiBase < Grape::API
    use My::Middleware::Thingamabob

    require 'grape/active_model_serializers'
    include Grape::ActiveModelSerializers

    mount MyApi::V1::ApiBase
  end
end