1.1.5 • Published 5 years ago

ngx-endpoints v1.1.5

Weekly downloads
3
License
MIT
Repository
github
Last release
5 years ago

npm Travis (.com) Greenkeeper badge GitHub

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

AttributeDescriptionDefault ValueTypeMandatory
titletitle of the url endpoint you request""stringtrue
endPointIdid for later identification (matching)0numbertrue
activeenable or disable endpointtruebooleanfalse
endPointUrlthe url endpoint which will be requested""stringtrue
requestOptionsadd header key/values{}objectfalse
liveDoes the url endpoint deliver live datafalsebooleanfalse
liveintervalIn which timeinterval (milliseconds) the data should be requested3000numberfalse
convertDatesUse relative date expressions in endPointUrl for e.g. for grafana/prometheus - moment-relativismfalsebooleanfalse
convertDatesOutputFormatmoment.js format will be used for conversion before url request will be started-stringfalse

Example

  endPointArray: Array<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 endpointservice: NgxEndpointService, protected endpointdataprovider: NgxEndPointDataProviderService) { }

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);
  });
}
1.1.5

5 years ago

1.1.4

5 years ago

1.1.3

5 years ago

1.2.0

5 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.10

6 years ago

1.0.9

6 years ago

1.0.8

6 years ago

1.0.7

6 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago