1.0.0 • Published 4 years ago
@student-mgmt/exercise-submitter-api-client v1.0.0
@student-mgmt/api-client
Angular client for:
https://github.com/Student-Management-System/exercise-submitter-server
Generated with @openapitools/openapi-generator-cli
General usage
In your Angular project:
// without configuring providers
import { ApiModule } from '@student-mgmt/api-client';
import { HttpClientModule } from '@angular/common/http';
@NgModule({
    imports: [
        ApiModule,
        // 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 { ApiModule, Configuration, ConfigurationParameters } from '@student-mgmt/api-client';
export function apiConfigFactory (): Configuration {
  const params: ConfigurationParameters = {
    // set configuration parameters here.
  }
  return new Configuration(params);
}
@NgModule({
    imports: [ ApiModule.forRoot(apiConfigFactory) ],
    declarations: [ AppComponent ],
    providers: [],
    bootstrap: [ AppComponent ]
})
export class AppModule {}// configuring providers with an authentication service that manages your access tokens
import { ApiModule, Configuration } from '@student-mgmt/api-client';
@NgModule({
    imports: [ ApiModule ],
    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 '@student-mgmt/api-client';
export class AppComponent {
    constructor(private apiGateway: DefaultApi) { }
}Note: The ApiModule is restricted to being instantiated once app wide. This is to ensure that all services are treated as singletons.
Using multiple OpenAPI files / APIs / ApiModules
In order to use multiple ApiModules generated from different OpenAPI files,
you can create an alias name when importing the modules
in order to avoid naming conflicts:
import { ApiModule } from 'my-api-path';
import { ApiModule as OtherApiModule } from 'my-other-api-path';
import { HttpClientModule } from '@angular/common/http';
@NgModule({
  imports: [
    ApiModule,
    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 '@student-mgmt/api-client';
bootstrap(AppComponent, [
    { provide: BASE_PATH, useValue: 'https://your-web-service.com' },
]);or
import { BASE_PATH } from '@student-mgmt/api-client';
@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 '@student-mgmt/api-client';
import { environment } from '../environments/environment';
@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [ ],
  providers: [{ provide: BASE_PATH, useValue: environment.API_BASE_PATH }],
  bootstrap: [ AppComponent ]
})
export class AppModule { }1.0.0
4 years ago