7.16.2673 • Published 5 months ago

@veeroute/lss-packer-angular v7.16.2673

Weekly downloads
-
License
Veeroute
Repository
-
Last release
5 months ago

@veeroute/lss-packer-angular@7.16.2673

General usage

In your Angular project:

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

@NgModule({
    imports: [
        LssPackerApiModule,
        // 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 { LssPackerApiModule, Configuration, ConfigurationParameters } from '@veeroute/lss-packer-angular';

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

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

@NgModule({
    imports: [ LssPackerApiModule ],
    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-packer-angular';

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

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

Using multiple OpenAPI files / APIs / LssPackerApiModules

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

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

@NgModule({
  imports: [
    LssPackerApiModule,
    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-packer-angular';

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

or

import { BASE_PATH } from '@veeroute/lss-packer-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-packer-angular';
import { environment } from '../environments/environment';

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

Customizing path parameter encoding

Without further customization, only path-parameters of style 'simple' and Dates for format 'date-time' are encoded correctly.

Other styles (e.g. "matrix") are not that easy to encode and thus are best delegated to other libraries (e.g.: @honoluluhenk/http-param-expander).

To implement your own parameter encoding (or call another library), pass an arrow-function or method-reference to the encodeParam property of the Configuration-object (see General Usage above).

Example value for use in your Configuration-Provider:

new Configuration({
    encodeParam: (param: Param) => myFancyParamEncoder(param),
})
7.16.2673

5 months ago

7.15.2652

6 months ago

7.14.2618

7 months ago

7.12.2609

8 months ago

7.13.2613

8 months ago

7.11.2593

9 months ago

7.10.2580

9 months ago

7.9.2527

10 months ago

7.8.2508

10 months ago

7.7.2501

11 months ago

7.6.2491

11 months ago

7.5.2472

12 months ago

7.4.2469

12 months ago

7.3.2463

1 year ago

7.2.2444

1 year ago

7.1.2439

1 year ago

7.0.2395

1 year ago

6.20.2258

1 year ago

6.20.2252

1 year ago

6.19.2236

2 years ago

6.18.2232

2 years ago

6.17.2224

2 years ago

6.16.2174

2 years ago

6.16.2177

2 years ago

6.10.2076

2 years ago

6.13.2112

2 years ago

6.9.2071

2 years ago

6.12.2101

2 years ago

6.15.2142

2 years ago

6.11.2097

2 years ago

6.8.2055

2 years ago

6.14.2133

2 years ago

6.6.2006

2 years ago

6.7.2022

2 years ago

6.5.1990

2 years ago

6.3.1926

2 years ago

6.2.1912

2 years ago

6.4.1962

2 years ago

6.1.1902

2 years ago

5.12.1836

3 years ago

5.8.1766

3 years ago

5.11.1826

3 years ago

5.6.1748

3 years ago

5.4.1715

3 years ago

5.3.1702

3 years ago

5.1.1673

3 years ago

4.9.1653

3 years ago

4.9.1651

3 years ago

4.7.1607

3 years ago

4.7.1605

3 years ago

4.7.1601

3 years ago

4.7.1599

3 years ago