Skip to content

Commit 8124d24

Browse files
author
Jonas Verhoelen
committed
[typescript-fetch] expose the path of each API method via public member of API class so it can be imported (e.g. by tests for HTTP response mocking
1 parent 2d927a7 commit 8124d24

File tree

38 files changed

+702
-234
lines changed

38 files changed

+702
-234
lines changed

modules/openapi-generator/src/main/resources/typescript-fetch/apis.mustache

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,8 @@ export class {{classname}} extends runtime.BaseAPI {
9191
* {{&summary}}
9292
{{/summary}}
9393
*/
94+
readonly {{nickname}}Path = '{{path}}'
95+
9496
async {{nickname}}Raw({{#allParams.0}}requestParameters: {{#prefixParameterInterfaces}}{{classname}}{{/prefixParameterInterfaces}}{{operationIdCamelCase}}Request, {{/allParams.0}}initOverrides?: RequestInit): Promise<runtime.ApiResponse<{{{returnType}}}{{^returnType}}void{{/returnType}}>> {
9597
{{#allParams}}
9698
{{#required}}
@@ -252,7 +254,7 @@ export class {{classname}} extends runtime.BaseAPI {
252254
{{/formParams}}
253255
{{/hasFormParams}}
254256
const response = await this.request({
255-
path: `{{{path}}}`{{#pathParams}}.replace(`{${"{{baseName}}"}}`, encodeURIComponent(String(requestParameters.{{paramName}}))){{/pathParams}},
257+
path: this.{{nickname}}Path{{#pathParams}}.replace(`{${"{{baseName}}"}}`, encodeURIComponent(String(requestParameters.{{paramName}}))){{/pathParams}},
256258
method: '{{httpMethod}}',
257259
headers: headerParameters,
258260
query: queryParameters,

samples/client/petstore/typescript-fetch/builds/default-v3.0/apis/AnotherFakeApi.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ export class AnotherFakeApi extends runtime.BaseAPI {
3333
* To test special tags and operation ID starting with number
3434
* To test special tags
3535
*/
36+
readonly _123testSpecialTagsPath = '/another-fake/dummy'
37+
3638
async _123testSpecialTagsRaw(requestParameters: 123testSpecialTagsRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Client>> {
3739
if (requestParameters.client === null || requestParameters.client === undefined) {
3840
throw new runtime.RequiredError('client','Required parameter requestParameters.client was null or undefined when calling _123testSpecialTags.');
@@ -45,7 +47,7 @@ export class AnotherFakeApi extends runtime.BaseAPI {
4547
headerParameters['Content-Type'] = 'application/json';
4648

4749
const response = await this.request({
48-
path: `/another-fake/dummy`,
50+
path: this._123testSpecialTagsPath,
4951
method: 'PATCH',
5052
headers: headerParameters,
5153
query: queryParameters,

samples/client/petstore/typescript-fetch/builds/default-v3.0/apis/DefaultApi.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,15 @@ export class DefaultApi extends runtime.BaseAPI {
2727

2828
/**
2929
*/
30+
readonly fooGetPath = '/foo'
31+
3032
async fooGetRaw(initOverrides?: RequestInit): Promise<runtime.ApiResponse<InlineResponseDefault>> {
3133
const queryParameters: any = {};
3234

3335
const headerParameters: runtime.HTTPHeaders = {};
3436

3537
const response = await this.request({
36-
path: `/foo`,
38+
path: this.fooGetPath,
3739
method: 'GET',
3840
headers: headerParameters,
3941
query: queryParameters,

samples/client/petstore/typescript-fetch/builds/default-v3.0/apis/FakeApi.ts

Lines changed: 51 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -145,13 +145,15 @@ export class FakeApi extends runtime.BaseAPI {
145145
/**
146146
* Health check endpoint
147147
*/
148+
readonly fakeHealthGetPath = '/fake/health'
149+
148150
async fakeHealthGetRaw(initOverrides?: RequestInit): Promise<runtime.ApiResponse<HealthCheckResult>> {
149151
const queryParameters: any = {};
150152

151153
const headerParameters: runtime.HTTPHeaders = {};
152154

153155
const response = await this.request({
154-
path: `/fake/health`,
156+
path: this.fakeHealthGetPath,
155157
method: 'GET',
156158
headers: headerParameters,
157159
query: queryParameters,
@@ -171,6 +173,8 @@ export class FakeApi extends runtime.BaseAPI {
171173
/**
172174
* test http signature authentication
173175
*/
176+
readonly fakeHttpSignatureTestPath = '/fake/http-signature-test'
177+
174178
async fakeHttpSignatureTestRaw(requestParameters: FakeHttpSignatureTestRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>> {
175179
if (requestParameters.pet === null || requestParameters.pet === undefined) {
176180
throw new runtime.RequiredError('pet','Required parameter requestParameters.pet was null or undefined when calling fakeHttpSignatureTest.');
@@ -191,7 +195,7 @@ export class FakeApi extends runtime.BaseAPI {
191195
}
192196

193197
const response = await this.request({
194-
path: `/fake/http-signature-test`,
198+
path: this.fakeHttpSignatureTestPath,
195199
method: 'GET',
196200
headers: headerParameters,
197201
query: queryParameters,
@@ -211,6 +215,8 @@ export class FakeApi extends runtime.BaseAPI {
211215
/**
212216
* Test serialization of outer boolean types
213217
*/
218+
readonly fakeOuterBooleanSerializePath = '/fake/outer/boolean'
219+
214220
async fakeOuterBooleanSerializeRaw(requestParameters: FakeOuterBooleanSerializeRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<boolean>> {
215221
const queryParameters: any = {};
216222

@@ -219,7 +225,7 @@ export class FakeApi extends runtime.BaseAPI {
219225
headerParameters['Content-Type'] = 'application/json';
220226

221227
const response = await this.request({
222-
path: `/fake/outer/boolean`,
228+
path: this.fakeOuterBooleanSerializePath,
223229
method: 'POST',
224230
headers: headerParameters,
225231
query: queryParameters,
@@ -240,6 +246,8 @@ export class FakeApi extends runtime.BaseAPI {
240246
/**
241247
* Test serialization of object with outer number type
242248
*/
249+
readonly fakeOuterCompositeSerializePath = '/fake/outer/composite'
250+
243251
async fakeOuterCompositeSerializeRaw(requestParameters: FakeOuterCompositeSerializeRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<OuterComposite>> {
244252
const queryParameters: any = {};
245253

@@ -248,7 +256,7 @@ export class FakeApi extends runtime.BaseAPI {
248256
headerParameters['Content-Type'] = 'application/json';
249257

250258
const response = await this.request({
251-
path: `/fake/outer/composite`,
259+
path: this.fakeOuterCompositeSerializePath,
252260
method: 'POST',
253261
headers: headerParameters,
254262
query: queryParameters,
@@ -269,6 +277,8 @@ export class FakeApi extends runtime.BaseAPI {
269277
/**
270278
* Test serialization of outer number types
271279
*/
280+
readonly fakeOuterNumberSerializePath = '/fake/outer/number'
281+
272282
async fakeOuterNumberSerializeRaw(requestParameters: FakeOuterNumberSerializeRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<number>> {
273283
const queryParameters: any = {};
274284

@@ -277,7 +287,7 @@ export class FakeApi extends runtime.BaseAPI {
277287
headerParameters['Content-Type'] = 'application/json';
278288

279289
const response = await this.request({
280-
path: `/fake/outer/number`,
290+
path: this.fakeOuterNumberSerializePath,
281291
method: 'POST',
282292
headers: headerParameters,
283293
query: queryParameters,
@@ -298,6 +308,8 @@ export class FakeApi extends runtime.BaseAPI {
298308
/**
299309
* Test serialization of outer string types
300310
*/
311+
readonly fakeOuterStringSerializePath = '/fake/outer/string'
312+
301313
async fakeOuterStringSerializeRaw(requestParameters: FakeOuterStringSerializeRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<string>> {
302314
const queryParameters: any = {};
303315

@@ -306,7 +318,7 @@ export class FakeApi extends runtime.BaseAPI {
306318
headerParameters['Content-Type'] = 'application/json';
307319

308320
const response = await this.request({
309-
path: `/fake/outer/string`,
321+
path: this.fakeOuterStringSerializePath,
310322
method: 'POST',
311323
headers: headerParameters,
312324
query: queryParameters,
@@ -327,6 +339,8 @@ export class FakeApi extends runtime.BaseAPI {
327339
/**
328340
* Test serialization of enum (int) properties with examples
329341
*/
342+
readonly fakePropertyEnumIntegerSerializePath = '/fake/property/enum-int'
343+
330344
async fakePropertyEnumIntegerSerializeRaw(requestParameters: FakePropertyEnumIntegerSerializeRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<OuterObjectWithEnumProperty>> {
331345
if (requestParameters.outerObjectWithEnumProperty === null || requestParameters.outerObjectWithEnumProperty === undefined) {
332346
throw new runtime.RequiredError('outerObjectWithEnumProperty','Required parameter requestParameters.outerObjectWithEnumProperty was null or undefined when calling fakePropertyEnumIntegerSerialize.');
@@ -339,7 +353,7 @@ export class FakeApi extends runtime.BaseAPI {
339353
headerParameters['Content-Type'] = 'application/json';
340354

341355
const response = await this.request({
342-
path: `/fake/property/enum-int`,
356+
path: this.fakePropertyEnumIntegerSerializePath,
343357
method: 'POST',
344358
headers: headerParameters,
345359
query: queryParameters,
@@ -360,6 +374,8 @@ export class FakeApi extends runtime.BaseAPI {
360374
/**
361375
* For this test, the body has to be a binary file.
362376
*/
377+
readonly testBodyWithBinaryPath = '/fake/body-with-binary'
378+
363379
async testBodyWithBinaryRaw(requestParameters: TestBodyWithBinaryRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>> {
364380
if (requestParameters.body === null || requestParameters.body === undefined) {
365381
throw new runtime.RequiredError('body','Required parameter requestParameters.body was null or undefined when calling testBodyWithBinary.');
@@ -372,7 +388,7 @@ export class FakeApi extends runtime.BaseAPI {
372388
headerParameters['Content-Type'] = 'image/png';
373389

374390
const response = await this.request({
375-
path: `/fake/body-with-binary`,
391+
path: this.testBodyWithBinaryPath,
376392
method: 'PUT',
377393
headers: headerParameters,
378394
query: queryParameters,
@@ -392,6 +408,8 @@ export class FakeApi extends runtime.BaseAPI {
392408
/**
393409
* For this test, the body for this request must reference a schema named `File`.
394410
*/
411+
readonly testBodyWithFileSchemaPath = '/fake/body-with-file-schema'
412+
395413
async testBodyWithFileSchemaRaw(requestParameters: TestBodyWithFileSchemaRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>> {
396414
if (requestParameters.fileSchemaTestClass === null || requestParameters.fileSchemaTestClass === undefined) {
397415
throw new runtime.RequiredError('fileSchemaTestClass','Required parameter requestParameters.fileSchemaTestClass was null or undefined when calling testBodyWithFileSchema.');
@@ -404,7 +422,7 @@ export class FakeApi extends runtime.BaseAPI {
404422
headerParameters['Content-Type'] = 'application/json';
405423

406424
const response = await this.request({
407-
path: `/fake/body-with-file-schema`,
425+
path: this.testBodyWithFileSchemaPath,
408426
method: 'PUT',
409427
headers: headerParameters,
410428
query: queryParameters,
@@ -423,6 +441,8 @@ export class FakeApi extends runtime.BaseAPI {
423441

424442
/**
425443
*/
444+
readonly testBodyWithQueryParamsPath = '/fake/body-with-query-params'
445+
426446
async testBodyWithQueryParamsRaw(requestParameters: TestBodyWithQueryParamsRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>> {
427447
if (requestParameters.query === null || requestParameters.query === undefined) {
428448
throw new runtime.RequiredError('query','Required parameter requestParameters.query was null or undefined when calling testBodyWithQueryParams.');
@@ -443,7 +463,7 @@ export class FakeApi extends runtime.BaseAPI {
443463
headerParameters['Content-Type'] = 'application/json';
444464

445465
const response = await this.request({
446-
path: `/fake/body-with-query-params`,
466+
path: this.testBodyWithQueryParamsPath,
447467
method: 'PUT',
448468
headers: headerParameters,
449469
query: queryParameters,
@@ -463,6 +483,8 @@ export class FakeApi extends runtime.BaseAPI {
463483
* To test \"client\" model
464484
* To test \"client\" model
465485
*/
486+
readonly testClientModelPath = '/fake'
487+
466488
async testClientModelRaw(requestParameters: TestClientModelRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Client>> {
467489
if (requestParameters.client === null || requestParameters.client === undefined) {
468490
throw new runtime.RequiredError('client','Required parameter requestParameters.client was null or undefined when calling testClientModel.');
@@ -475,7 +497,7 @@ export class FakeApi extends runtime.BaseAPI {
475497
headerParameters['Content-Type'] = 'application/json';
476498

477499
const response = await this.request({
478-
path: `/fake`,
500+
path: this.testClientModelPath,
479501
method: 'PATCH',
480502
headers: headerParameters,
481503
query: queryParameters,
@@ -498,6 +520,8 @@ export class FakeApi extends runtime.BaseAPI {
498520
* Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
499521
* Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
500522
*/
523+
readonly testEndpointParametersPath = '/fake'
524+
501525
async testEndpointParametersRaw(requestParameters: TestEndpointParametersRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>> {
502526
if (requestParameters.number === null || requestParameters.number === undefined) {
503527
throw new runtime.RequiredError('number','Required parameter requestParameters.number was null or undefined when calling testEndpointParameters.');
@@ -595,7 +619,7 @@ export class FakeApi extends runtime.BaseAPI {
595619
}
596620

597621
const response = await this.request({
598-
path: `/fake`,
622+
path: this.testEndpointParametersPath,
599623
method: 'POST',
600624
headers: headerParameters,
601625
query: queryParameters,
@@ -617,6 +641,8 @@ export class FakeApi extends runtime.BaseAPI {
617641
* To test enum parameters
618642
* To test enum parameters
619643
*/
644+
readonly testEnumParametersPath = '/fake'
645+
620646
async testEnumParametersRaw(requestParameters: TestEnumParametersRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>> {
621647
const queryParameters: any = {};
622648

@@ -669,7 +695,7 @@ export class FakeApi extends runtime.BaseAPI {
669695
}
670696

671697
const response = await this.request({
672-
path: `/fake`,
698+
path: this.testEnumParametersPath,
673699
method: 'GET',
674700
headers: headerParameters,
675701
query: queryParameters,
@@ -691,6 +717,8 @@ export class FakeApi extends runtime.BaseAPI {
691717
* Fake endpoint to test group parameters (optional)
692718
* Fake endpoint to test group parameters (optional)
693719
*/
720+
readonly testGroupParametersPath = '/fake'
721+
694722
async testGroupParametersRaw(requestParameters: TestGroupParametersRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>> {
695723
if (requestParameters.requiredStringGroup === null || requestParameters.requiredStringGroup === undefined) {
696724
throw new runtime.RequiredError('requiredStringGroup','Required parameter requestParameters.requiredStringGroup was null or undefined when calling testGroupParameters.');
@@ -741,7 +769,7 @@ export class FakeApi extends runtime.BaseAPI {
741769
}
742770
}
743771
const response = await this.request({
744-
path: `/fake`,
772+
path: this.testGroupParametersPath,
745773
method: 'DELETE',
746774
headers: headerParameters,
747775
query: queryParameters,
@@ -761,6 +789,8 @@ export class FakeApi extends runtime.BaseAPI {
761789
/**
762790
* test inline additionalProperties
763791
*/
792+
readonly testInlineAdditionalPropertiesPath = '/fake/inline-additionalProperties'
793+
764794
async testInlineAdditionalPropertiesRaw(requestParameters: TestInlineAdditionalPropertiesRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>> {
765795
if (requestParameters.requestBody === null || requestParameters.requestBody === undefined) {
766796
throw new runtime.RequiredError('requestBody','Required parameter requestParameters.requestBody was null or undefined when calling testInlineAdditionalProperties.');
@@ -773,7 +803,7 @@ export class FakeApi extends runtime.BaseAPI {
773803
headerParameters['Content-Type'] = 'application/json';
774804

775805
const response = await this.request({
776-
path: `/fake/inline-additionalProperties`,
806+
path: this.testInlineAdditionalPropertiesPath,
777807
method: 'POST',
778808
headers: headerParameters,
779809
query: queryParameters,
@@ -793,6 +823,8 @@ export class FakeApi extends runtime.BaseAPI {
793823
/**
794824
* test json serialization of form data
795825
*/
826+
readonly testJsonFormDataPath = '/fake/jsonFormData'
827+
796828
async testJsonFormDataRaw(requestParameters: TestJsonFormDataRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>> {
797829
if (requestParameters.param === null || requestParameters.param === undefined) {
798830
throw new runtime.RequiredError('param','Required parameter requestParameters.param was null or undefined when calling testJsonFormData.');
@@ -829,7 +861,7 @@ export class FakeApi extends runtime.BaseAPI {
829861
}
830862

831863
const response = await this.request({
832-
path: `/fake/jsonFormData`,
864+
path: this.testJsonFormDataPath,
833865
method: 'GET',
834866
headers: headerParameters,
835867
query: queryParameters,
@@ -849,6 +881,8 @@ export class FakeApi extends runtime.BaseAPI {
849881
/**
850882
* To test the collection format in query parameters
851883
*/
884+
readonly testQueryParameterCollectionFormatPath = '/fake/test-query-parameters'
885+
852886
async testQueryParameterCollectionFormatRaw(requestParameters: TestQueryParameterCollectionFormatRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>> {
853887
if (requestParameters.pipe === null || requestParameters.pipe === undefined) {
854888
throw new runtime.RequiredError('pipe','Required parameter requestParameters.pipe was null or undefined when calling testQueryParameterCollectionFormat.');
@@ -907,7 +941,7 @@ export class FakeApi extends runtime.BaseAPI {
907941
const headerParameters: runtime.HTTPHeaders = {};
908942

909943
const response = await this.request({
910-
path: `/fake/test-query-parameters`,
944+
path: this.testQueryParameterCollectionFormatPath,
911945
method: 'PUT',
912946
headers: headerParameters,
913947
query: queryParameters,

samples/client/petstore/typescript-fetch/builds/default-v3.0/apis/FakeClassnameTags123Api.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ export class FakeClassnameTags123Api extends runtime.BaseAPI {
3333
* To test class name in snake case
3434
* To test class name in snake case
3535
*/
36+
readonly testClassnamePath = '/fake_classname_test'
37+
3638
async testClassnameRaw(requestParameters: TestClassnameRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Client>> {
3739
if (requestParameters.client === null || requestParameters.client === undefined) {
3840
throw new runtime.RequiredError('client','Required parameter requestParameters.client was null or undefined when calling testClassname.');
@@ -49,7 +51,7 @@ export class FakeClassnameTags123Api extends runtime.BaseAPI {
4951
}
5052

5153
const response = await this.request({
52-
path: `/fake_classname_test`,
54+
path: this.testClassnamePath,
5355
method: 'PATCH',
5456
headers: headerParameters,
5557
query: queryParameters,

0 commit comments

Comments
 (0)