@@ -5,52 +5,52 @@ Usage: The generated output is intended to be its own module, that can be import
55Example usage (with the openapi sample ` petstore.yaml ` ):
66
771 . Invoke openapi-generator
8- ```
9- openapi-generator-cli.jar generate -i petstore.yaml -g typescript-nestjs-server -o api-module/
10- ```
11- 2 . implement the contracts from ` api-module/api `
12-
13- ` handlers/PetService.ts ` :
14- ``` typescript
15- import { Pet , ApiResponse } from " models " ;
16- import { Observable } from " rxjs " ;
17- import { PetApi } from " ../api " ;
18- import { Inject , Injectable } from " @nestjs/common " ;
19-
20- @ Injectable ()
21- export class PetService implements PetApi {
22- addPet( pet : Pet , request : Request ) : Pet | Promise < Pet > | Observable < Pet > {
23- throw new Error ( " Method not implemented. " );
24- }
25-
26- deletePet( petId : number , apiKey : string , request : Request ) : void | Promise < void > | Observable < void > {
27- throw new Error ( " Method not implemented. " );
28- }
29-
30- ...
31- ` ` `
32-
33- 3. Import the API Module with a reference to your implementation
34- ` app . module . ts `
35- ` ` ` typescript
36- import { Module } from " @nestjs/common " ;
37- import { ApiModule } from " api-module/api.module " ;
38- import { PetService } from " ./handlers/PetService " ;
39- import { UserService } from " ./handlers/UserService " ;
40- import { StoreService } from " ./handlers/StoreService " ;
41-
42- @ Module ({
43- imports: [
44- ApiModule . forRoot ({
45- petApi: PetService ,
46- userApi: UserService ,
47- storeApi: StoreService
48- } ),
49- ],
50- controllers: [],
51- providers: [],
52- })
53- export class AppModule {}
54- ` ` `
8+ ```
9+ openapi-generator-cli.jar generate -i petstore.yaml -g typescript-nestjs-server -o api-module/
10+ ```
11+ 2 . implement the contracts from ` api-module/api `
12+ ` handlers/PetService.ts ` :
13+ ``` typescript
14+ import { Pet , ApiResponse } from " models " ;
15+ import { Observable } from " rxjs " ;
16+ import { PetApi } from " ../api " ;
17+ import { Inject , Injectable } from " @nestjs/common " ;
18+
19+ @ Injectable ()
20+ export class PetService implements PetApi {
21+ addPet( pet : Pet , request : Request ) : Pet | Promise < Pet > | Observable < Pet > {
22+ throw new Error ( " Method not implemented. " );
23+ }
24+
25+ deletePet( petId : number , apiKey : string , request : Request ) : void | Promise < void > | Observable < void > {
26+ throw new Error ( " Method not implemented. " );
27+ }
28+
29+ ...
30+ ` ` `
31+ 3. Import the generated ` ApiModule ` with ` ApiModule . forRoot ` and provide a instance of ` ApiImplementations ` with a reference to your implementation
32+ ` app . module . ts `
33+ ` ` ` typescript
34+ import { Module } from " @nestjs/common " ;
35+ import { ApiModule , ApiImplementations } from " api-module " ;
36+ import { PetService } from " ./handlers/PetService " ;
37+ import { UserService } from " ./handlers/UserService " ;
38+ import { StoreService } from " ./handlers/StoreService " ;
39+
40+ const apiImplementations : ApiImplementations = {
41+ petApi: PetService ,
42+ userApi: UserService ,
43+ storeApi: StoreService ,
44+ }
45+
46+ @ Module ({
47+ imports: [
48+ ApiModule . forRoot ( apiImplementations ),
49+ ],
50+ controllers: [],
51+ providers: [],
52+ })
53+ export class AppModule {}
54+ ` ` `
5555
5656You now can regenerate the API module as often as you want without overriding your implementation.
0 commit comments