Skip to content

infinum/ngx-hal

Repository files navigation

NgxHal

ngx-hal is a data store with support for handling HAL formatted HTTP requests.

Installation

npm install --save ngx-hal

Basic usage

After the initial ngx-hal setup (see Getting started section) a resource model can be created which extends HalModel from the ngx-hal and a resource service which extends ModelService from ngx-hal. The following example uses the User resource as an example.

user.model.ts

class User extends HalModel {
  @Attribute()
  public name: string;
}

user.service.ts

class UserService extends ModelService<User> {
	constructor(datastore: DatastoreService) {
		super(datastore, User);
	}
}

A few methods are available on an instance of UserService:

Fetching a user

this.userService.findOne('1').subscribe((user: User) => {
	console.log('Fetched user', user);
});

Fetching a list of users

this.userService.find().subscribe((users: Array<User>) => {
	console.log('Fetched users', users);
});

Fetching a list of users with pagination information

this.userService.find({}, true).subscribe((halDocument: HalDocument<User>) => {
	console.log('Fetched users', halDocument.models);
	console.log('Pagination information', halDocument.pagination);
});

API reference

Build

ng build

Running unit tests

ng test