Skip to content

footageone/HATEOAS-link-resolver

Repository files navigation

HATEOAS-link-resolver

build Maintainability Test Coverage

Small helper library for resolving templated HATEOAS links

Install

Use your favourite package manager

npm i -S hateoas-link-resolver

or

yarn add hateoas-link-resolver

Usage

Just resolve templated links

import { resolve } from 'hateoas-link-resolver';
const templatedLink = 'https://example.org/{id}/sub';
const resolvedLink = resolve(link, {id: '123'});

Use Link repository. Put all link into repository and then retrieve from there and resolve

import { LinkRepository } from 'hateoas-link-resolver';
const links = {
    endpoint1: {
        href: "https://example.org/{id}",
        templated: true
    },
    endpoint2: {
        href: "https://example.org/path/{id}",
        templated: true
    }
};
const repo = new LinkRepository(links);

// resolve
repo.resolve('endpoint1', {id: '123'});

// check existence
repo.has('endpoint1');

// get unresolved link
repo.get('endpoint1');

Limitations

This helper is for rather simple link structures and does not support list of links.

Alternatives

If you need resolving of list of links you might want to try hateoas-hal-link-resolver