JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 262
  • Score
    100M100P100Q81998F
  • License MIT

Simplify Angular HTTP request API management

Package Exports

  • ngx-endpoint

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (ngx-endpoint) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

npm version CircleCI quality gate quality gate - coverage

ngx-endpoint

Simplify Angular HTTP request API management.

Installing

npm install ngx-endpoint --save

Configuring

(1) create one EndpointService which extends the BaseEndpointService

import { Injectable } from '@angular/core';
import { BaseEndpointService } from 'ngx-endpoint';



@Injectable({
  providedIn: 'root',          // <---- only for Angular v6+, remove it on v4 or v5
})
export class EndpointService extends BaseEndpointService {

  readonly api = this.booking('/api');   // <---- register as prefix

  readonly gitLab = this.booking('https://gitlab.com/api/v4');   // <---- another one



  protected onInit () {

    this.api.headers.add({
      'X-Powered-By': 'NgxEndpoint',    // <---- leaves small ink on future calling
    });

  }

}

(2) wire up everything together

import { HttpClientModule } from '@angular/common/http';

import { NgxEndpointModule, BaseEndpointService } from 'ngx-endpoint';

import { EndpointService } from 'app/endpoint-service';



@NgModule({
  imports: [
    HttpClientModule,

    NgxEndpointModule,
  ],
  providers: [

    // EndpointService,   <---- need this if on Angular v4 or v5

    { provide: BaseEndpointService, useExisting: EndpointService },

  ],
  bootstrap: [ AppComponent ],
})
export class AppModule { }

(3) let's ues this api in real service

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';

import { EndpointService } from 'app/endpoint-service';



@Injectable()
export class MyService {

  constructor (
    private readonly http: HttpClient,
    private readonly endpoint: EndpointService,   // <---- inject EndpointService
  ) {
  }


  private readonly api = this.endpoint.api;   // <---- retrieve that api instance


  getInfo () {
    return this.http.get(this.api.to('/info'));   // <---- auto prefixed
  }

  setOAuth (token: string) {
    this.api.auth.OAuth2(token);   // <---- assign OAuth2 token
  }

  setJWT (token: string) {
    this.api.auth.JWT(token);   // <---- assign JWT token
  }

  setBasic (user: string, pass: string) {
    this.api.auth.basic(user, pass);   // <---- assign Basic Auth credentials
  }

}

that's it.

License

the MIT