HalExtension

HalExtension

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

Constructor

new HalExtension(mediaTypes)

Create the HAL extension

Parameters:
Name Type Description
mediaTypes Array

Media types in addition to application/hal+json that should be handled by this extensions. This allows for custom media types based on HAL 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

curiePrefixParser(data, headers, context) → {Object.<String, CuriePrefix>}

Parse any CURIE prefixes defined 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 curie prefixes, indexed by the prefix identifier.

Type
Object.<String, CuriePrefix>

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>>

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>