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

0.3.2 • Public • Published

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

Install

npm i ngx-endpoint

DownloadsWeekly Downloads

253

Version

0.3.2

License

MIT

Unpacked Size

218 kB

Total Files

37

Last publish

Collaborators

  • imcotton