Skip to content

Commit d96432d

Browse files
authored
feat: [OpenAPI] withDefaultHeader on Api classes (#1130)
1 parent 7aae548 commit d96432d

File tree

17 files changed

+258
-33
lines changed

17 files changed

+258
-33
lines changed

datamodel/openapi/openapi-api-apache-sample/src/main/java/com/sap/cloud/sdk/datamodel/openapi/apache/petstore/api/DefaultApi.java

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,21 @@ public DefaultApi( @Nonnull final ApiClient apiClient )
5353
super(apiClient);
5454
}
5555

56+
/**
57+
* Creates a new API instance with additional default headers.
58+
*
59+
* @param defaultHeaders
60+
* Additional headers to include in all requests
61+
* @return A new API instance with the combined headers
62+
*/
63+
public DefaultApi withDefaultHeaders( @Nonnull final Map<String, String> defaultHeaders )
64+
{
65+
final var api = new DefaultApi(apiClient);
66+
api.defaultHeaders.putAll(this.defaultHeaders);
67+
api.defaultHeaders.putAll(defaultHeaders);
68+
return api;
69+
}
70+
5671
/**
5772
* <p>
5873
* <p>
@@ -85,7 +100,7 @@ public Pet addPet( @Nonnull final PetInput pet )
85100
final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
86101
final List<Pair> localVarQueryParams = new ArrayList<Pair>();
87102
final List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
88-
final Map<String, String> localVarHeaderParams = new HashMap<String, String>();
103+
final Map<String, String> localVarHeaderParams = new HashMap<String, String>(defaultHeaders);
89104
final Map<String, Object> localVarFormParams = new HashMap<String, Object>();
90105

91106
final String[] localVarAccepts = { "application/json" };
@@ -145,7 +160,7 @@ public OpenApiResponse deletePet( @Nonnull final Long id )
145160
final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
146161
final List<Pair> localVarQueryParams = new ArrayList<Pair>();
147162
final List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
148-
final Map<String, String> localVarHeaderParams = new HashMap<String, String>();
163+
final Map<String, String> localVarHeaderParams = new HashMap<String, String>(defaultHeaders);
149164
final Map<String, Object> localVarFormParams = new HashMap<String, Object>();
150165

151166
final String[] localVarAccepts = { "application/json" };
@@ -207,7 +222,7 @@ public Pet findPetById( @Nonnull final Long id )
207222
final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
208223
final List<Pair> localVarQueryParams = new ArrayList<Pair>();
209224
final List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
210-
final Map<String, String> localVarHeaderParams = new HashMap<String, String>();
225+
final Map<String, String> localVarHeaderParams = new HashMap<String, String>(defaultHeaders);
211226
final Map<String, Object> localVarFormParams = new HashMap<String, Object>();
212227

213228
final String[] localVarAccepts = { "application/json", "application/xml", "text/xml", "text/html" };
@@ -264,7 +279,7 @@ public List<Pet> findPets( @Nullable final List<String> tags, @Nullable final In
264279
final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
265280
final List<Pair> localVarQueryParams = new ArrayList<Pair>();
266281
final List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
267-
final Map<String, String> localVarHeaderParams = new HashMap<String, String>();
282+
final Map<String, String> localVarHeaderParams = new HashMap<String, String>(defaultHeaders);
268283
final Map<String, Object> localVarFormParams = new HashMap<String, Object>();
269284

270285
localVarCollectionQueryParams.addAll(ApiClient.parameterToPairs("csv", "tags", tags));

datamodel/openapi/openapi-api-apache-sample/src/main/java/com/sap/cloud/sdk/datamodel/openapi/apache/sodastore/api/OrdersApi.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,21 @@ public OrdersApi( @Nonnull final ApiClient apiClient )
5050
super(apiClient);
5151
}
5252

53+
/**
54+
* Creates a new API instance with additional default headers.
55+
*
56+
* @param defaultHeaders
57+
* Additional headers to include in all requests
58+
* @return A new API instance with the combined headers
59+
*/
60+
public OrdersApi withDefaultHeaders( @Nonnull final Map<String, String> defaultHeaders )
61+
{
62+
final var api = new OrdersApi(apiClient);
63+
api.defaultHeaders.putAll(this.defaultHeaders);
64+
api.defaultHeaders.putAll(defaultHeaders);
65+
return api;
66+
}
67+
5368
/**
5469
* <p>
5570
* Create a new order
@@ -80,7 +95,7 @@ public Order ordersPost( @Nonnull final Order order )
8095
final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
8196
final List<Pair> localVarQueryParams = new ArrayList<Pair>();
8297
final List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
83-
final Map<String, String> localVarHeaderParams = new HashMap<String, String>();
98+
final Map<String, String> localVarHeaderParams = new HashMap<String, String>(defaultHeaders);
8499
final Map<String, Object> localVarFormParams = new HashMap<String, Object>();
85100

86101
final String[] localVarAccepts = { "application/json" };

datamodel/openapi/openapi-api-apache-sample/src/main/java/com/sap/cloud/sdk/datamodel/openapi/apache/sodastore/api/SodasApi.java

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,21 @@ public SodasApi( @Nonnull final ApiClient apiClient )
5252
super(apiClient);
5353
}
5454

55+
/**
56+
* Creates a new API instance with additional default headers.
57+
*
58+
* @param defaultHeaders
59+
* Additional headers to include in all requests
60+
* @return A new API instance with the combined headers
61+
*/
62+
public SodasApi withDefaultHeaders( @Nonnull final Map<String, String> defaultHeaders )
63+
{
64+
final var api = new SodasApi(apiClient);
65+
api.defaultHeaders.putAll(this.defaultHeaders);
66+
api.defaultHeaders.putAll(defaultHeaders);
67+
return api;
68+
}
69+
5570
/**
5671
* <p>
5772
* Download soda product data as binary
@@ -86,7 +101,7 @@ public byte[] sodasDownloadIdGet( @Nonnull final Long id )
86101
final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
87102
final List<Pair> localVarQueryParams = new ArrayList<Pair>();
88103
final List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
89-
final Map<String, String> localVarHeaderParams = new HashMap<String, String>();
104+
final Map<String, String> localVarHeaderParams = new HashMap<String, String>(defaultHeaders);
90105
final Map<String, Object> localVarFormParams = new HashMap<String, Object>();
91106

92107
final String[] localVarAccepts = { "application/octet-stream" };
@@ -137,7 +152,7 @@ public List<SodaWithId> sodasGet()
137152
final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
138153
final List<Pair> localVarQueryParams = new ArrayList<Pair>();
139154
final List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
140-
final Map<String, String> localVarHeaderParams = new HashMap<String, String>();
155+
final Map<String, String> localVarHeaderParams = new HashMap<String, String>(defaultHeaders);
141156
final Map<String, Object> localVarFormParams = new HashMap<String, Object>();
142157

143158
final String[] localVarAccepts = { "application/json" };
@@ -199,7 +214,7 @@ public SodaWithId sodasIdGet( @Nonnull final Long id )
199214
final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
200215
final List<Pair> localVarQueryParams = new ArrayList<Pair>();
201216
final List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
202-
final Map<String, String> localVarHeaderParams = new HashMap<String, String>();
217+
final Map<String, String> localVarHeaderParams = new HashMap<String, String>(defaultHeaders);
203218
final Map<String, Object> localVarFormParams = new HashMap<String, Object>();
204219

205220
final String[] localVarAccepts = { "application/json" };
@@ -262,7 +277,7 @@ public Soda sodasPut( @Nonnull final SodaWithId sodaWithId )
262277
final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
263278
final List<Pair> localVarQueryParams = new ArrayList<Pair>();
264279
final List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
265-
final Map<String, String> localVarHeaderParams = new HashMap<String, String>();
280+
final Map<String, String> localVarHeaderParams = new HashMap<String, String>(defaultHeaders);
266281
final Map<String, Object> localVarFormParams = new HashMap<String, Object>();
267282

268283
final String[] localVarAccepts = { "application/json" };

datamodel/openapi/openapi-core-apache/src/main/java/com/sap/cloud/sdk/services/openapi/apache/apiclient/BaseApi.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212

1313
package com.sap.cloud.sdk.services.openapi.apache.apiclient;
1414

15+
import java.util.HashMap;
16+
import java.util.Map;
17+
1518
import javax.annotation.Nonnull;
1619

1720
import com.sap.cloud.sdk.cloudplatform.connectivity.Destination;
@@ -26,6 +29,11 @@ public abstract class BaseApi
2629
*/
2730
protected final ApiClient apiClient;
2831

32+
/**
33+
* Default headers to be included in every request.
34+
*/
35+
protected final Map<String, String> defaultHeaders = new HashMap<>();
36+
2937
/**
3038
* Creates a new BaseApi instance with default configuration.
3139
*/

datamodel/openapi/openapi-generator/src/main/resources/openapi-generator/mustache-templates/libraries/apache-httpclient/api.mustache

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,25 @@ public class {{classname}} extends BaseApi {
9191
{
9292
super(aiCoreService.getApiClient());
9393
}
94+
95+
private {{classname}}(@Nonnull final ApiClient apiClient) {
96+
super(apiClient);
97+
}
9498
{{/aiSdkConstructor}}
9599

100+
/**
101+
* Creates a new API instance with additional default headers.
102+
*
103+
* @param defaultHeaders Additional headers to include in all requests
104+
* @return A new API instance with the combined headers
105+
*/
106+
public {{classname}} withDefaultHeaders(@Nonnull final Map<String, String> defaultHeaders) {
107+
final var api = new {{classname}}(apiClient);
108+
api.defaultHeaders.putAll(this.defaultHeaders);
109+
api.defaultHeaders.putAll(defaultHeaders);
110+
return api;
111+
}
112+
96113
{{#operation}}
97114
{{#hasOptionalParams}}
98115
/**

datamodel/openapi/openapi-generator/src/main/resources/openapi-generator/mustache-templates/libraries/apache-httpclient/operationBody.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ final String localVarPath = "{{{path}}}"{{#pathParams}}
1212
final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
1313
final List<Pair> localVarQueryParams = new ArrayList<Pair>();
1414
final List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
15-
final Map<String, String> localVarHeaderParams = new HashMap<String, String>();
15+
final Map<String, String> localVarHeaderParams = new HashMap<String, String>(defaultHeaders);
1616
final Map<String, Object> localVarFormParams = new HashMap<String, Object>();
1717

1818
{{#queryParams}}

datamodel/openapi/openapi-generator/src/test/resources/DataModelGeneratorApacheIntegrationTest/api-class-for-ai-sdk/output/com/sap/cloud/sdk/services/builder/api/AwesomeSodaApi.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,23 @@ public AwesomeSodaApi( @Nonnull final AiCoreService aiCoreService )
5555
super(aiCoreService.getApiClient());
5656
}
5757

58+
private AwesomeSodaApi(@Nonnull final ApiClient apiClient) {
59+
super(apiClient);
60+
}
61+
62+
/**
63+
* Creates a new API instance with additional default headers.
64+
*
65+
* @param defaultHeaders Additional headers to include in all requests
66+
* @return A new API instance with the combined headers
67+
*/
68+
public AwesomeSodaApi withDefaultHeaders(@Nonnull final Map<String, String> defaultHeaders) {
69+
final var api = new AwesomeSodaApi(apiClient);
70+
api.defaultHeaders.putAll(this.defaultHeaders);
71+
api.defaultHeaders.putAll(defaultHeaders);
72+
return api;
73+
}
74+
5875

5976
/**
6077
* <p>Add a new soda to the store
@@ -80,7 +97,7 @@ public Soda addSoda(@Nonnull final NewSoda newSoda) throws OpenApiRequestExcepti
8097
final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
8198
final List<Pair> localVarQueryParams = new ArrayList<Pair>();
8299
final List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
83-
final Map<String, String> localVarHeaderParams = new HashMap<String, String>();
100+
final Map<String, String> localVarHeaderParams = new HashMap<String, String>(defaultHeaders);
84101
final Map<String, Object> localVarFormParams = new HashMap<String, Object>();
85102

86103

datamodel/openapi/openapi-generator/src/test/resources/DataModelGeneratorApacheIntegrationTest/api-class-for-ai-sdk/output/com/sap/cloud/sdk/services/builder/api/AwesomeSodasApi.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,23 @@ public AwesomeSodasApi( @Nonnull final AiCoreService aiCoreService )
5454
super(aiCoreService.getApiClient());
5555
}
5656

57+
private AwesomeSodasApi(@Nonnull final ApiClient apiClient) {
58+
super(apiClient);
59+
}
60+
61+
/**
62+
* Creates a new API instance with additional default headers.
63+
*
64+
* @param defaultHeaders Additional headers to include in all requests
65+
* @return A new API instance with the combined headers
66+
*/
67+
public AwesomeSodasApi withDefaultHeaders(@Nonnull final Map<String, String> defaultHeaders) {
68+
final var api = new AwesomeSodasApi(apiClient);
69+
api.defaultHeaders.putAll(this.defaultHeaders);
70+
api.defaultHeaders.putAll(defaultHeaders);
71+
return api;
72+
}
73+
5774

5875
/**
5976
* <p>Get a list of all sodas
@@ -71,7 +88,7 @@ public List<Soda> getSodas() throws OpenApiRequestException {
7188
final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
7289
final List<Pair> localVarQueryParams = new ArrayList<Pair>();
7390
final List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
74-
final Map<String, String> localVarHeaderParams = new HashMap<String, String>();
91+
final Map<String, String> localVarHeaderParams = new HashMap<String, String>(defaultHeaders);
7592
final Map<String, Object> localVarFormParams = new HashMap<String, Object>();
7693

7794

datamodel/openapi/openapi-generator/src/test/resources/DataModelGeneratorApacheIntegrationTest/api-class-for-ai-sdk/output/com/sap/cloud/sdk/services/builder/api/DefaultApi.java

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,23 @@ public DefaultApi( @Nonnull final AiCoreService aiCoreService )
5555
super(aiCoreService.getApiClient());
5656
}
5757

58+
private DefaultApi(@Nonnull final ApiClient apiClient) {
59+
super(apiClient);
60+
}
61+
62+
/**
63+
* Creates a new API instance with additional default headers.
64+
*
65+
* @param defaultHeaders Additional headers to include in all requests
66+
* @return A new API instance with the combined headers
67+
*/
68+
public DefaultApi withDefaultHeaders(@Nonnull final Map<String, String> defaultHeaders) {
69+
final var api = new DefaultApi(apiClient);
70+
api.defaultHeaders.putAll(this.defaultHeaders);
71+
api.defaultHeaders.putAll(defaultHeaders);
72+
return api;
73+
}
74+
5875

5976
/**
6077
* <p>Delete a specific soda from the store
@@ -82,7 +99,7 @@ public OpenApiResponse deleteSodaById(@Nonnull final Long sodaId) throws OpenApi
8299
final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
83100
final List<Pair> localVarQueryParams = new ArrayList<Pair>();
84101
final List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
85-
final Map<String, String> localVarHeaderParams = new HashMap<String, String>();
102+
final Map<String, String> localVarHeaderParams = new HashMap<String, String>(defaultHeaders);
86103
final Map<String, Object> localVarFormParams = new HashMap<String, Object>();
87104

88105

@@ -138,7 +155,7 @@ public Soda getSodaById(@Nonnull final Long sodaId) throws OpenApiRequestExcepti
138155
final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
139156
final List<Pair> localVarQueryParams = new ArrayList<Pair>();
140157
final List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
141-
final Map<String, String> localVarHeaderParams = new HashMap<String, String>();
158+
final Map<String, String> localVarHeaderParams = new HashMap<String, String>(defaultHeaders);
142159
final Map<String, Object> localVarFormParams = new HashMap<String, Object>();
143160

144161

@@ -202,7 +219,7 @@ public Soda updateSodaById(@Nonnull final Long sodaId, @Nonnull final UpdateSoda
202219
final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
203220
final List<Pair> localVarQueryParams = new ArrayList<Pair>();
204221
final List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
205-
final Map<String, String> localVarHeaderParams = new HashMap<String, String>();
222+
final Map<String, String> localVarHeaderParams = new HashMap<String, String>(defaultHeaders);
206223
final Map<String, Object> localVarFormParams = new HashMap<String, Object>();
207224

208225

datamodel/openapi/openapi-generator/src/test/resources/DataModelGeneratorApacheIntegrationTest/api-class-vendor-extension-json/output/com/sap/cloud/sdk/services/apiclassvendorextension/api/AwesomeSodaApi.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,19 @@ public AwesomeSodaApi(@Nonnull final ApiClient apiClient) {
5757
super(apiClient);
5858
}
5959

60+
/**
61+
* Creates a new API instance with additional default headers.
62+
*
63+
* @param defaultHeaders Additional headers to include in all requests
64+
* @return A new API instance with the combined headers
65+
*/
66+
public AwesomeSodaApi withDefaultHeaders(@Nonnull final Map<String, String> defaultHeaders) {
67+
final var api = new AwesomeSodaApi(apiClient);
68+
api.defaultHeaders.putAll(this.defaultHeaders);
69+
api.defaultHeaders.putAll(defaultHeaders);
70+
return api;
71+
}
72+
6073

6174
/**
6275
* <p>Add a new soda to the store
@@ -82,7 +95,7 @@ public Soda addSoda(@Nonnull final NewSoda newSoda) throws OpenApiRequestExcepti
8295
final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
8396
final List<Pair> localVarQueryParams = new ArrayList<Pair>();
8497
final List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
85-
final Map<String, String> localVarHeaderParams = new HashMap<String, String>();
98+
final Map<String, String> localVarHeaderParams = new HashMap<String, String>(defaultHeaders);
8699
final Map<String, Object> localVarFormParams = new HashMap<String, Object>();
87100

88101

0 commit comments

Comments
 (0)