SirenExtension

SirenExtension

Extension for processing Siren responses. By default, the extension will only process links and embedded resources in responses if the HTTP response Content-Type header equals application/vnd.siren+json. If you have a custom media type that extends SIren, you can register it by passing it in the mediaTypes parameter.

At this point, the Siren extension includes both the Siren links and the sub-entity embedded links in the set queried by the Resource#$link/Resource#$links functions.

Siren's actions are exposed through Resource#$form and Resource#$forms.

Constructor

new SirenExtension(mediaTypes)

Create the Siren extension

Parameters:
Name Type Description
mediaTypes Array

Media types in addition to application/vnd.siren+json that should be handled by this extensions. This allows for custom media types based on Siren to be handled properly.

Implements:
Source:

Methods

applies(data, headers, context) → {Boolean}

Determine whether this extension should be used to process a particular response

Parameters:
Name Type Description
data Object

The body of the response, pre-parsed if some form of JSON.

headers Object.<string, string>

The HTTP headers of the response

context Context

The context of the current resource/operation.

Implements:
Source:
Returns:

True if the extension should be used to process the response.

Type
Boolean

dataParser(data, headers, context) → {Array.<{name: String, value: Object}>}

Parse any field data that is part of the resource.

Parameters:
Name Type Description
data Object

The body of the response, pre-parsed if some form of JSON.

headers Object.<string, string>

The HTTP headers of the response

context Context

The context of the current resource/operation.

Implements:
Source:
Returns:

The fields, as an array of name/value pairs.

Type
Array.<{name: String, value: Object}>

embeddedParser(data, headers, context, the) → {Object.<String, Array.<Resource>>}

Parse any embedded resources found in this resource.

Parameters:
Name Type Description
data Object

The body of the response, pre-parsed if some form of JSON.

headers Object.<string, string>

The HTTP headers of the response

context Context

The context of the current resource/operation.

the Resource

parent resource that contains the parsed resources.

Implements:
Source:
Returns:

The embedded resources, aggregated by the link relation.

Type
Object.<String, Array.<Resource>>

formatSpecificParser(data, headers, context) → {Object}

Parse and assign hypermedia format specific attributes in this resource.

Parameters:
Name Type Description
data Object

The body of the response, pre-parsed if some form of JSON.

headers Object.<string, string>

The HTTP headers of the response

context Context

The context of the current resource/operation.

Implements:
Source:
Returns:

The object containing any format specific properties.

Type
Object

formParser(data, headers, context) → {Object.<String, Array.<Form>>}

Parse any hypermedia forms found in this resource.

Parameters:
Name Type Description
data Object

The body of the response, pre-parsed if some form of JSON.

headers Object.<string, string>

The HTTP headers of the response

context Context

The context of the current resource/operation.

Implements:
Source:
Returns:

The hypermedia forms, aggregated by the link relation.

Type
Object.<String, Array.<Form>>

linkParser(data, headers, context) → {Object.<String, LinkCollection>}

Parse any links found in the resources.

Parameters:
Name Type Description
data Object

The body of the response, pre-parsed if some form of JSON.

headers Object.<string, string>

The HTTP headers of the response

context Context

The context of the current resource/operation.

Implements:
Source:
Returns:

The links, aggregated by the link relation.

Type
Object.<String, LinkCollection>