Instances of the Hoodoo::Services::Request class are passed to service interface implementations when requests come in via Rack, after basic checks have been passed and a particular interface implementation has been identified by endpoint.

Descriptions of default values expected out of accessors herein refer to the use case when driven through Hoodoo::Services::Middleware. If the class is instantiated “bare” it gains no default values at all (all read accessors would report nil).

Namespace
Methods
N
U
Attributes
[RW] body

Parsed payload hash, for create and update actions only; else nil.

[RW] embeds

Array of strings giving requested embedded items; [] if there are none requested.

[RW] headers

Hash of HTTP headers in Rack format - e.g. HTTP_X_INTERACTION_ID for the “X-Interaction-ID” header, for read-only use. All keys are in upper case, are Strings, have “HTTP_” at the start and use underscores where the original request might've used an underscore or hyphen. The usual curious Rack exceptions of CONTENT_TYPE and CONTENT_LENGTH do apply, though. This is a superset of header values including those sent by the client in its request and anything Rack itself might have added.

[R] ident

The first entry in the uri_path_components array, or nil if the array is empty. This supports a common case for inter-resource calls where a UUID or other unique identifier is provided through the first path element (“.../v1/resource/uuid”).

[RW] list

The Hoodoo::Services::Request::ListParameters instance associated with this request.

[RW] locale

Requested locale for internationalised operations; +“en-nz”+ by default.

[RW] references

Array of strings giving requested referenced items; [] if there are none requested.

[R] uri_path_components

An array of zero or more path components making up the URI after the service endpoint has been accounted for. For example, with a service endpoint of “products”, this URI:

http://test.com/v1/products/1234/foo.json

…would lead to this path component array:

[ '1234', 'foo' ]

The first element of the path components array is exposed in the read-only ident accessor.

[RW] uri_path_extension

A filename extension on the URI path component, if any, else an empty string. The first dot in the last path component is looked for (see also uri_path_components), so for example this URI:

http://test.com/v1/products/1.2.3.4/foo.my.tar.gz

…would lead to this URI path extension string:

'my.tar.gz'
Class Public methods
new()

Set up defaults in this instance.

# File lib/hoodoo/services/services/request.rb, line 255
def initialize
  self.locale              = 'en-nz'
  self.uri_path_components = []
  self.uri_path_extension  = ''
  self.list                = Hoodoo::Services::Request::ListParameters.new
  self.embeds              = []
  self.references          = []
  self.headers             = {}.freeze
end
Instance Public methods
uri_path_components=( ary )

Set the array returned by uri_path_components and record the first element in the value returned by ident.

ary

Path component array to record. If nil or not an array, nil is stored for #uri_path_components and ident.

# File lib/hoodoo/services/services/request.rb, line 190
def uri_path_components=( ary )
  if ary.is_a?( ::Array )
    @uri_path_components = ary
    @ident               = ary.first
  else
    @uri_path_components = nil
    @ident               = nil
  end
end