JSPM

  • Created
  • Published
  • Downloads 448
  • Score
    100M100P100Q145333F
  • License Veeroute

OpenAPI client for @veeroute/lss-universal-angular

Package Exports

  • @veeroute/lss-universal-angular
  • @veeroute/lss-universal-angular/bundles/veeroute-lss-universal-angular.umd.js
  • @veeroute/lss-universal-angular/fesm2015/veeroute-lss-universal-angular.js

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 (@veeroute/lss-universal-angular) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@veeroute/lss-universal-angular@4.7.1607

General usage

In your Angular project:

// without configuring providers
import { LssUniversalApiModule } from '@veeroute/lss-universal-angular';
import { HttpClientModule } from '@angular/common/http';

@NgModule({
    imports: [
        LssUniversalApiModule,
        // make sure to import the HttpClientModule in the AppModule only,
        // see https://github.com/angular/angular/issues/20575
        HttpClientModule
    ],
    declarations: [ AppComponent ],
    providers: [],
    bootstrap: [ AppComponent ]
})
export class AppModule {}
// configuring providers
import { LssUniversalApiModule, Configuration, ConfigurationParameters } from '@veeroute/lss-universal-angular';

export function apiConfigFactory (): Configuration {
  const params: ConfigurationParameters = {
    // set configuration parameters here.
  }
  return new Configuration(params);
}

@NgModule({
    imports: [ LssUniversalApiModule.forRoot(apiConfigFactory) ],
    declarations: [ AppComponent ],
    providers: [],
    bootstrap: [ AppComponent ]
})
export class AppModule {}
// configuring providers with an authentication service that manages your access tokens
import { LssUniversalApiModule, Configuration } from '@veeroute/lss-universal-angular';

@NgModule({
    imports: [ LssUniversalApiModule ],
    declarations: [ AppComponent ],
    providers: [
      {
        provide: Configuration,
        useFactory: (authService: AuthService) => new Configuration(
          {
            basePath: environment.apiUrl,
            accessToken: authService.getAccessToken.bind(authService)
          }
        ),
        deps: [AuthService],
        multi: false
      }
    ],
    bootstrap: [ AppComponent ]
})
export class AppModule {}
import { DefaultApi } from '@veeroute/lss-universal-angular';

export class AppComponent {
    constructor(private apiGateway: DefaultApi) { }
}

Note: The LssUniversalApiModule is restricted to being instantiated once app wide. This is to ensure that all services are treated as singletons.

Using multiple OpenAPI files / APIs / LssUniversalApiModules

In order to use multiple LssUniversalApiModules generated from different OpenAPI files, you can create an alias name when importing the modules in order to avoid naming conflicts:

import { LssUniversalApiModule } from 'my-api-path';
import { LssUniversalApiModule as OtherApiModule } from 'my-other-api-path';
import { HttpClientModule } from '@angular/common/http';

@NgModule({
  imports: [
    LssUniversalApiModule,
    OtherApiModule,
    // make sure to import the HttpClientModule in the AppModule only,
    // see https://github.com/angular/angular/issues/20575
    HttpClientModule
  ]
})
export class AppModule {

}

Set service base path

If different than the generated base path, during app bootstrap, you can provide the base path to your service.

import { BASE_PATH } from '@veeroute/lss-universal-angular';

bootstrap(AppComponent, [
    { provide: BASE_PATH, useValue: 'https://your-web-service.com' },
]);

or

import { BASE_PATH } from '@veeroute/lss-universal-angular';

@NgModule({
    imports: [],
    declarations: [ AppComponent ],
    providers: [ provide: BASE_PATH, useValue: 'https://your-web-service.com' ],
    bootstrap: [ AppComponent ]
})
export class AppModule {}

Using @angular/cli

First extend your src/environments/*.ts files by adding the corresponding base path:

export const environment = {
  production: false,
  API_BASE_PATH: 'http://127.0.0.1:8080'
};

In the src/app/app.module.ts:

import { BASE_PATH } from '@veeroute/lss-universal-angular';
import { environment } from '../environments/environment';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [ ],
  providers: [{ provide: BASE_PATH, useValue: environment.API_BASE_PATH }],
  bootstrap: [ AppComponent ]
})
export class AppModule { }