From e61a77b70ba9e3de2b08da1e76b8083be35091ab Mon Sep 17 00:00:00 2001 From: saxicek Date: Thu, 22 Jan 2026 15:26:31 +0100 Subject: [PATCH 1/2] [BUG][typescript-angular] apiKeys cause service compilation errors Updated TypeScript Angular `configuration.mustache` to properly handle apiKeys in query parameters by using `OpenApiHttpParams` instead of `HttpHeaders` to avoid compilation errors. Fixes #22774 --- .../main/resources/typescript-angular/configuration.mustache | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/typescript-angular/configuration.mustache b/modules/openapi-generator/src/main/resources/typescript-angular/configuration.mustache index 3182d6027e33..4f035d5a5d27 100644 --- a/modules/openapi-generator/src/main/resources/typescript-angular/configuration.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-angular/configuration.mustache @@ -1,5 +1,6 @@ -import { HttpHeaders, HttpParams, HttpParameterCodec } from '@angular/common/http'; +import { HttpHeaders, HttpParameterCodec } from '@angular/common/http'; import { Param } from './param'; +import { OpenApiHttpParams } from './query.params'; export interface {{configurationParametersInterfaceName}} { /** @@ -198,7 +199,7 @@ constructor({ accessToken, apiKeys, basePath, credentials, encodeParam, encoder, : headers; } - public addCredentialToQuery(credentialKey: string, paramName: string, query: HttpParams): HttpParams { + public addCredentialToQuery(credentialKey: string, paramName: string, query: OpenApiHttpParams): OpenApiHttpParams { const value = this.lookupCredential(credentialKey); return value ? query.set(paramName, value) From 01396bbf87bb7646d7905c8b368a848c8b07253b Mon Sep 17 00:00:00 2001 From: saxicek Date: Thu, 22 Jan 2026 19:24:33 +0100 Subject: [PATCH 2/2] add generated samples --- .../builds/query-param-deep-object/configuration.ts | 5 +++-- .../builds/query-param-form/configuration.ts | 5 +++-- .../builds/query-param-json/configuration.ts | 5 +++-- .../builds/composed-schemas-tagged-unions/configuration.ts | 5 +++-- .../builds/composed-schemas/configuration.ts | 5 +++-- .../builds/default/configuration.ts | 5 +++-- .../builds/default/configuration.ts | 5 +++-- .../builds/default/configuration.ts | 5 +++-- .../builds/default/configuration.ts | 5 +++-- .../builds/default/configuration.ts | 5 +++-- .../typescript-angular-v19/builds/default/configuration.ts | 5 +++-- .../builds/default/configuration.ts | 5 +++-- .../typescript-angular-v20/builds/default/configuration.ts | 5 +++-- .../builds/default/configuration.ts | 5 +++-- .../typescript-angular-v21/builds/default/configuration.ts | 5 +++-- 15 files changed, 45 insertions(+), 30 deletions(-) diff --git a/samples/client/others/typescript-angular-v20/builds/query-param-deep-object/configuration.ts b/samples/client/others/typescript-angular-v20/builds/query-param-deep-object/configuration.ts index 2a128451c081..3ce70bf8abaa 100644 --- a/samples/client/others/typescript-angular-v20/builds/query-param-deep-object/configuration.ts +++ b/samples/client/others/typescript-angular-v20/builds/query-param-deep-object/configuration.ts @@ -1,5 +1,6 @@ -import { HttpHeaders, HttpParams, HttpParameterCodec } from '@angular/common/http'; +import { HttpHeaders, HttpParameterCodec } from '@angular/common/http'; import { Param } from './param'; +import { OpenApiHttpParams } from './query.params'; export interface ConfigurationParameters { /** @@ -159,7 +160,7 @@ constructor({ accessToken, apiKeys, basePath, credentials, encodeParam, encoder, : headers; } - public addCredentialToQuery(credentialKey: string, paramName: string, query: HttpParams): HttpParams { + public addCredentialToQuery(credentialKey: string, paramName: string, query: OpenApiHttpParams): OpenApiHttpParams { const value = this.lookupCredential(credentialKey); return value ? query.set(paramName, value) diff --git a/samples/client/others/typescript-angular-v20/builds/query-param-form/configuration.ts b/samples/client/others/typescript-angular-v20/builds/query-param-form/configuration.ts index 2a128451c081..3ce70bf8abaa 100644 --- a/samples/client/others/typescript-angular-v20/builds/query-param-form/configuration.ts +++ b/samples/client/others/typescript-angular-v20/builds/query-param-form/configuration.ts @@ -1,5 +1,6 @@ -import { HttpHeaders, HttpParams, HttpParameterCodec } from '@angular/common/http'; +import { HttpHeaders, HttpParameterCodec } from '@angular/common/http'; import { Param } from './param'; +import { OpenApiHttpParams } from './query.params'; export interface ConfigurationParameters { /** @@ -159,7 +160,7 @@ constructor({ accessToken, apiKeys, basePath, credentials, encodeParam, encoder, : headers; } - public addCredentialToQuery(credentialKey: string, paramName: string, query: HttpParams): HttpParams { + public addCredentialToQuery(credentialKey: string, paramName: string, query: OpenApiHttpParams): OpenApiHttpParams { const value = this.lookupCredential(credentialKey); return value ? query.set(paramName, value) diff --git a/samples/client/others/typescript-angular-v20/builds/query-param-json/configuration.ts b/samples/client/others/typescript-angular-v20/builds/query-param-json/configuration.ts index 2a128451c081..3ce70bf8abaa 100644 --- a/samples/client/others/typescript-angular-v20/builds/query-param-json/configuration.ts +++ b/samples/client/others/typescript-angular-v20/builds/query-param-json/configuration.ts @@ -1,5 +1,6 @@ -import { HttpHeaders, HttpParams, HttpParameterCodec } from '@angular/common/http'; +import { HttpHeaders, HttpParameterCodec } from '@angular/common/http'; import { Param } from './param'; +import { OpenApiHttpParams } from './query.params'; export interface ConfigurationParameters { /** @@ -159,7 +160,7 @@ constructor({ accessToken, apiKeys, basePath, credentials, encodeParam, encoder, : headers; } - public addCredentialToQuery(credentialKey: string, paramName: string, query: HttpParams): HttpParams { + public addCredentialToQuery(credentialKey: string, paramName: string, query: OpenApiHttpParams): OpenApiHttpParams { const value = this.lookupCredential(credentialKey); return value ? query.set(paramName, value) diff --git a/samples/client/others/typescript-angular/builds/composed-schemas-tagged-unions/configuration.ts b/samples/client/others/typescript-angular/builds/composed-schemas-tagged-unions/configuration.ts index 2a128451c081..3ce70bf8abaa 100644 --- a/samples/client/others/typescript-angular/builds/composed-schemas-tagged-unions/configuration.ts +++ b/samples/client/others/typescript-angular/builds/composed-schemas-tagged-unions/configuration.ts @@ -1,5 +1,6 @@ -import { HttpHeaders, HttpParams, HttpParameterCodec } from '@angular/common/http'; +import { HttpHeaders, HttpParameterCodec } from '@angular/common/http'; import { Param } from './param'; +import { OpenApiHttpParams } from './query.params'; export interface ConfigurationParameters { /** @@ -159,7 +160,7 @@ constructor({ accessToken, apiKeys, basePath, credentials, encodeParam, encoder, : headers; } - public addCredentialToQuery(credentialKey: string, paramName: string, query: HttpParams): HttpParams { + public addCredentialToQuery(credentialKey: string, paramName: string, query: OpenApiHttpParams): OpenApiHttpParams { const value = this.lookupCredential(credentialKey); return value ? query.set(paramName, value) diff --git a/samples/client/others/typescript-angular/builds/composed-schemas/configuration.ts b/samples/client/others/typescript-angular/builds/composed-schemas/configuration.ts index 2a128451c081..3ce70bf8abaa 100644 --- a/samples/client/others/typescript-angular/builds/composed-schemas/configuration.ts +++ b/samples/client/others/typescript-angular/builds/composed-schemas/configuration.ts @@ -1,5 +1,6 @@ -import { HttpHeaders, HttpParams, HttpParameterCodec } from '@angular/common/http'; +import { HttpHeaders, HttpParameterCodec } from '@angular/common/http'; import { Param } from './param'; +import { OpenApiHttpParams } from './query.params'; export interface ConfigurationParameters { /** @@ -159,7 +160,7 @@ constructor({ accessToken, apiKeys, basePath, credentials, encodeParam, encoder, : headers; } - public addCredentialToQuery(credentialKey: string, paramName: string, query: HttpParams): HttpParams { + public addCredentialToQuery(credentialKey: string, paramName: string, query: OpenApiHttpParams): OpenApiHttpParams { const value = this.lookupCredential(credentialKey); return value ? query.set(paramName, value) diff --git a/samples/client/petstore/typescript-angular-v16-provided-in-root/builds/default/configuration.ts b/samples/client/petstore/typescript-angular-v16-provided-in-root/builds/default/configuration.ts index 775b99892d50..830d98b65222 100644 --- a/samples/client/petstore/typescript-angular-v16-provided-in-root/builds/default/configuration.ts +++ b/samples/client/petstore/typescript-angular-v16-provided-in-root/builds/default/configuration.ts @@ -1,5 +1,6 @@ -import { HttpHeaders, HttpParams, HttpParameterCodec } from '@angular/common/http'; +import { HttpHeaders, HttpParameterCodec } from '@angular/common/http'; import { Param } from './param'; +import { OpenApiHttpParams } from './query.params'; export interface ConfigurationParameters { /** @@ -179,7 +180,7 @@ constructor({ accessToken, apiKeys, basePath, credentials, encodeParam, encoder, : headers; } - public addCredentialToQuery(credentialKey: string, paramName: string, query: HttpParams): HttpParams { + public addCredentialToQuery(credentialKey: string, paramName: string, query: OpenApiHttpParams): OpenApiHttpParams { const value = this.lookupCredential(credentialKey); return value ? query.set(paramName, value) diff --git a/samples/client/petstore/typescript-angular-v17-provided-in-root/builds/default/configuration.ts b/samples/client/petstore/typescript-angular-v17-provided-in-root/builds/default/configuration.ts index 775b99892d50..830d98b65222 100644 --- a/samples/client/petstore/typescript-angular-v17-provided-in-root/builds/default/configuration.ts +++ b/samples/client/petstore/typescript-angular-v17-provided-in-root/builds/default/configuration.ts @@ -1,5 +1,6 @@ -import { HttpHeaders, HttpParams, HttpParameterCodec } from '@angular/common/http'; +import { HttpHeaders, HttpParameterCodec } from '@angular/common/http'; import { Param } from './param'; +import { OpenApiHttpParams } from './query.params'; export interface ConfigurationParameters { /** @@ -179,7 +180,7 @@ constructor({ accessToken, apiKeys, basePath, credentials, encodeParam, encoder, : headers; } - public addCredentialToQuery(credentialKey: string, paramName: string, query: HttpParams): HttpParams { + public addCredentialToQuery(credentialKey: string, paramName: string, query: OpenApiHttpParams): OpenApiHttpParams { const value = this.lookupCredential(credentialKey); return value ? query.set(paramName, value) diff --git a/samples/client/petstore/typescript-angular-v18-provided-in-root/builds/default/configuration.ts b/samples/client/petstore/typescript-angular-v18-provided-in-root/builds/default/configuration.ts index 775b99892d50..830d98b65222 100644 --- a/samples/client/petstore/typescript-angular-v18-provided-in-root/builds/default/configuration.ts +++ b/samples/client/petstore/typescript-angular-v18-provided-in-root/builds/default/configuration.ts @@ -1,5 +1,6 @@ -import { HttpHeaders, HttpParams, HttpParameterCodec } from '@angular/common/http'; +import { HttpHeaders, HttpParameterCodec } from '@angular/common/http'; import { Param } from './param'; +import { OpenApiHttpParams } from './query.params'; export interface ConfigurationParameters { /** @@ -179,7 +180,7 @@ constructor({ accessToken, apiKeys, basePath, credentials, encodeParam, encoder, : headers; } - public addCredentialToQuery(credentialKey: string, paramName: string, query: HttpParams): HttpParams { + public addCredentialToQuery(credentialKey: string, paramName: string, query: OpenApiHttpParams): OpenApiHttpParams { const value = this.lookupCredential(credentialKey); return value ? query.set(paramName, value) diff --git a/samples/client/petstore/typescript-angular-v19-provided-in-root/builds/default/configuration.ts b/samples/client/petstore/typescript-angular-v19-provided-in-root/builds/default/configuration.ts index 775b99892d50..830d98b65222 100644 --- a/samples/client/petstore/typescript-angular-v19-provided-in-root/builds/default/configuration.ts +++ b/samples/client/petstore/typescript-angular-v19-provided-in-root/builds/default/configuration.ts @@ -1,5 +1,6 @@ -import { HttpHeaders, HttpParams, HttpParameterCodec } from '@angular/common/http'; +import { HttpHeaders, HttpParameterCodec } from '@angular/common/http'; import { Param } from './param'; +import { OpenApiHttpParams } from './query.params'; export interface ConfigurationParameters { /** @@ -179,7 +180,7 @@ constructor({ accessToken, apiKeys, basePath, credentials, encodeParam, encoder, : headers; } - public addCredentialToQuery(credentialKey: string, paramName: string, query: HttpParams): HttpParams { + public addCredentialToQuery(credentialKey: string, paramName: string, query: OpenApiHttpParams): OpenApiHttpParams { const value = this.lookupCredential(credentialKey); return value ? query.set(paramName, value) diff --git a/samples/client/petstore/typescript-angular-v19-with-angular-dependency-params/builds/default/configuration.ts b/samples/client/petstore/typescript-angular-v19-with-angular-dependency-params/builds/default/configuration.ts index 775b99892d50..830d98b65222 100644 --- a/samples/client/petstore/typescript-angular-v19-with-angular-dependency-params/builds/default/configuration.ts +++ b/samples/client/petstore/typescript-angular-v19-with-angular-dependency-params/builds/default/configuration.ts @@ -1,5 +1,6 @@ -import { HttpHeaders, HttpParams, HttpParameterCodec } from '@angular/common/http'; +import { HttpHeaders, HttpParameterCodec } from '@angular/common/http'; import { Param } from './param'; +import { OpenApiHttpParams } from './query.params'; export interface ConfigurationParameters { /** @@ -179,7 +180,7 @@ constructor({ accessToken, apiKeys, basePath, credentials, encodeParam, encoder, : headers; } - public addCredentialToQuery(credentialKey: string, paramName: string, query: HttpParams): HttpParams { + public addCredentialToQuery(credentialKey: string, paramName: string, query: OpenApiHttpParams): OpenApiHttpParams { const value = this.lookupCredential(credentialKey); return value ? query.set(paramName, value) diff --git a/samples/client/petstore/typescript-angular-v19/builds/default/configuration.ts b/samples/client/petstore/typescript-angular-v19/builds/default/configuration.ts index 775b99892d50..830d98b65222 100644 --- a/samples/client/petstore/typescript-angular-v19/builds/default/configuration.ts +++ b/samples/client/petstore/typescript-angular-v19/builds/default/configuration.ts @@ -1,5 +1,6 @@ -import { HttpHeaders, HttpParams, HttpParameterCodec } from '@angular/common/http'; +import { HttpHeaders, HttpParameterCodec } from '@angular/common/http'; import { Param } from './param'; +import { OpenApiHttpParams } from './query.params'; export interface ConfigurationParameters { /** @@ -179,7 +180,7 @@ constructor({ accessToken, apiKeys, basePath, credentials, encodeParam, encoder, : headers; } - public addCredentialToQuery(credentialKey: string, paramName: string, query: HttpParams): HttpParams { + public addCredentialToQuery(credentialKey: string, paramName: string, query: OpenApiHttpParams): OpenApiHttpParams { const value = this.lookupCredential(credentialKey); return value ? query.set(paramName, value) diff --git a/samples/client/petstore/typescript-angular-v20-provided-in-root/builds/default/configuration.ts b/samples/client/petstore/typescript-angular-v20-provided-in-root/builds/default/configuration.ts index 775b99892d50..830d98b65222 100644 --- a/samples/client/petstore/typescript-angular-v20-provided-in-root/builds/default/configuration.ts +++ b/samples/client/petstore/typescript-angular-v20-provided-in-root/builds/default/configuration.ts @@ -1,5 +1,6 @@ -import { HttpHeaders, HttpParams, HttpParameterCodec } from '@angular/common/http'; +import { HttpHeaders, HttpParameterCodec } from '@angular/common/http'; import { Param } from './param'; +import { OpenApiHttpParams } from './query.params'; export interface ConfigurationParameters { /** @@ -179,7 +180,7 @@ constructor({ accessToken, apiKeys, basePath, credentials, encodeParam, encoder, : headers; } - public addCredentialToQuery(credentialKey: string, paramName: string, query: HttpParams): HttpParams { + public addCredentialToQuery(credentialKey: string, paramName: string, query: OpenApiHttpParams): OpenApiHttpParams { const value = this.lookupCredential(credentialKey); return value ? query.set(paramName, value) diff --git a/samples/client/petstore/typescript-angular-v20/builds/default/configuration.ts b/samples/client/petstore/typescript-angular-v20/builds/default/configuration.ts index 775b99892d50..830d98b65222 100644 --- a/samples/client/petstore/typescript-angular-v20/builds/default/configuration.ts +++ b/samples/client/petstore/typescript-angular-v20/builds/default/configuration.ts @@ -1,5 +1,6 @@ -import { HttpHeaders, HttpParams, HttpParameterCodec } from '@angular/common/http'; +import { HttpHeaders, HttpParameterCodec } from '@angular/common/http'; import { Param } from './param'; +import { OpenApiHttpParams } from './query.params'; export interface ConfigurationParameters { /** @@ -179,7 +180,7 @@ constructor({ accessToken, apiKeys, basePath, credentials, encodeParam, encoder, : headers; } - public addCredentialToQuery(credentialKey: string, paramName: string, query: HttpParams): HttpParams { + public addCredentialToQuery(credentialKey: string, paramName: string, query: OpenApiHttpParams): OpenApiHttpParams { const value = this.lookupCredential(credentialKey); return value ? query.set(paramName, value) diff --git a/samples/client/petstore/typescript-angular-v21-provided-in-root/builds/default/configuration.ts b/samples/client/petstore/typescript-angular-v21-provided-in-root/builds/default/configuration.ts index 775b99892d50..830d98b65222 100644 --- a/samples/client/petstore/typescript-angular-v21-provided-in-root/builds/default/configuration.ts +++ b/samples/client/petstore/typescript-angular-v21-provided-in-root/builds/default/configuration.ts @@ -1,5 +1,6 @@ -import { HttpHeaders, HttpParams, HttpParameterCodec } from '@angular/common/http'; +import { HttpHeaders, HttpParameterCodec } from '@angular/common/http'; import { Param } from './param'; +import { OpenApiHttpParams } from './query.params'; export interface ConfigurationParameters { /** @@ -179,7 +180,7 @@ constructor({ accessToken, apiKeys, basePath, credentials, encodeParam, encoder, : headers; } - public addCredentialToQuery(credentialKey: string, paramName: string, query: HttpParams): HttpParams { + public addCredentialToQuery(credentialKey: string, paramName: string, query: OpenApiHttpParams): OpenApiHttpParams { const value = this.lookupCredential(credentialKey); return value ? query.set(paramName, value) diff --git a/samples/client/petstore/typescript-angular-v21/builds/default/configuration.ts b/samples/client/petstore/typescript-angular-v21/builds/default/configuration.ts index 775b99892d50..830d98b65222 100644 --- a/samples/client/petstore/typescript-angular-v21/builds/default/configuration.ts +++ b/samples/client/petstore/typescript-angular-v21/builds/default/configuration.ts @@ -1,5 +1,6 @@ -import { HttpHeaders, HttpParams, HttpParameterCodec } from '@angular/common/http'; +import { HttpHeaders, HttpParameterCodec } from '@angular/common/http'; import { Param } from './param'; +import { OpenApiHttpParams } from './query.params'; export interface ConfigurationParameters { /** @@ -179,7 +180,7 @@ constructor({ accessToken, apiKeys, basePath, credentials, encodeParam, encoder, : headers; } - public addCredentialToQuery(credentialKey: string, paramName: string, query: HttpParams): HttpParams { + public addCredentialToQuery(credentialKey: string, paramName: string, query: OpenApiHttpParams): OpenApiHttpParams { const value = this.lookupCredential(credentialKey); return value ? query.set(paramName, value)