class Hoodoo::Services::Request
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
).
Attributes
Parsed payload hash, for create and update actions only; else nil
.
Array of strings giving requested embedded items; [] if there are none requested.
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.
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
”).
The Hoodoo::Services::Request::ListParameters
instance associated with this request.
Requested locale for internationalised operations; +“en-nz”+ by default.
Array of strings giving requested referenced items; [] if there are none requested.
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.
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'
Public Class Methods
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
Public Instance Methods
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 foruri_path_components
andident
.
# 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