ngx-endpoints
TypeScript icon, indicating that this package has built-in type declarations

1.1.5 • Public • Published

ngx-endpoints

load data from url-endpoints dynamically at runtime

Demo

https://pharindoko.github.io/ngx-endpoints/sample

Installation

NPM

npm install ngx-endpoints --save

YARN

yarn add ngx-endpoints

Technical Documentation

https://pharindoko.github.io/ngx-endpoints/documentation

Usecase

The assumption is always that you want to GET data.

  • You need to execute url endpoints dynamically in the application.
  • You retrieve urls from a backend and request further data from different urls based on different related objects
  • You want to make date relative requests
  • You want to make live requests and subscribe to it

Dependencies

Makes use of following packages:

  • moment.js
  • moment-relativism
  • query-string

How to integrate into a component

Create an Array of Type NgxEndPoint (Array<NgxEndPointData>)

Attributes

Attribute Description Default Value Type Mandatory
title title of the url endpoint you request "" string true
endPointId id for later identification (matching) 0 number true
active enable or disable endpoint true boolean false
endPointUrl the url endpoint which will be requested "" string true
requestOptions add header key/values {} object false
live Does the url endpoint deliver live data false boolean false
liveinterval In which timeinterval (milliseconds) the data should be requested 3000 number false
convertDates Use relative date expressions in endPointUrl for e.g. for grafana/prometheus - moment-relativism false boolean false
convertDatesOutputFormat moment.js format will be used for conversion before url request will be started - string false

Example

  endPointArrayArray<NgxEndPointData> = [
{
  'title': 'Deutsche Bahn Public Transport API - Jungfernheid',
  'endPointId': 1,
  'active': true,
  'endPointUrl': 'https://2.db.transport.rest/stations?query=jungfernheide',
  'requestOptions': {
    'Content-Type': 'application/json',
  },
  'live': false
},
{
  'title': 'search-meinfernbus-locations - Frankfurt',
  'endPointId': 2,
  'active': true,
  'endPointUrl': 'https://1.flixbus.transport.rest/regions/?query=Frankfurt',
  'requestOptions': {
    'Content-Type': 'application/json',
  },
  'live': true,
  'liveinterval': 10000
}];

1. Import Module

...
import { NgxEndpointsModule} from 'ngx-endpoints';
...
 
 
@NgModule({
  declarations: [
  ],
  imports: [
    ...
    NgxEndpointsModule,
  ],
  providers: [],
  bootstrap: []
})
export class AppModule { }
 

2. Import Classes

import {NgxEndPoint, NgxEndPointDataProviderService, NgxEndPointData, NgxEndpointService} from 'ngx-endpoints';

3. Inject NgxEndpointService and NgxEndPointDataProviderService

constructor(protected endpointserviceNgxEndpointService, protected endpointdataproviderNgxEndPointDataProviderService) { }

4. Use it in code directly

  • Basic Example
ngOnInit()void {
  // add to dataprovider service (Endpoints get created)
  for (const dataitem of this.endPointArray) {
    this.endpointdataprovider.addEndPoint(dataitem).requestData();
  }
  // subscribe to specific endpoint
  this.endpointdataprovider.endpoints.find(x => x.endpoint.endPointId === 2).data.subscribe(val => {
    console.log('Value: ' + val);
  });
}

Package Sidebar

Install

npm i ngx-endpoints

Weekly Downloads

0

Version

1.1.5

License

MIT

Unpacked Size

436 kB

Total Files

36

Last publish

Collaborators

  • florian.fuss