Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 1 addition & 6 deletions examples/basic_schema/single/simpleAPI.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,13 +46,8 @@ export class SimpleAPIClient {
undefined,
mergedRequestParameters
)
let data
const data = response.json() as GetExample200

try {
data = response.json()
} catch {
data = response.body
}
return {
response,
data,
Expand Down
7 changes: 1 addition & 6 deletions examples/basic_schema/split/simpleAPI.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,8 @@ export class SimpleAPIClient {
undefined,
mergedRequestParameters
)
let data
const data = response.json() as GetExample200

try {
data = response.json()
} catch {
data = response.body
}
return {
response,
data,
Expand Down
7 changes: 1 addition & 6 deletions examples/basic_schema/tags/default.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,8 @@ export class DefaultClient {
undefined,
mergedRequestParameters
)
let data
const data = response.json() as GetExample200

try {
data = response.json()
} catch {
data = response.body
}
return {
response,
data,
Expand Down
20 changes: 20 additions & 0 deletions examples/empty_response/schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"openapi": "3.0.3",
"info": {
"title": "Example API",
"description": "API with all formats of data in the POST request body",
"version": "1.0.0"
},
"paths": {
"/empty-response": {
"post": {
"operationId": "empty-response",
"responses": {
"200": {
"description": ""
}
}
}
}
}
}
76 changes: 76 additions & 0 deletions examples/empty_response/single/exampleAPI.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
/**
* Automatically generated by @grafana/openapi-to-k6: 0.3.2
* Do not edit manually.
* Example API
* API with all formats of data in the POST request body
* Service version: 1.0.0
*/
import { URL } from 'https://jslib.k6.io/url/1.0.0/index.js'
import http from 'k6/http'
import type { Params, Response } from 'k6/http'

/**
* This is the base client to use for interacting with the API.
*/
export class ExampleAPIClient {
private cleanBaseUrl: string
private commonRequestParameters: Params

constructor(clientOptions: {
baseUrl: string
commonRequestParameters?: Params
}) {
this.cleanBaseUrl = clientOptions.baseUrl.replace(/\/+$/, '')

this.commonRequestParameters = clientOptions.commonRequestParameters || {}
}

emptyResponse(requestParameters?: Params): {
response: Response
} {
const url = new URL(this.cleanBaseUrl + `/empty-response`)
const mergedRequestParameters = this._mergeRequestParameters(
requestParameters || {},
this.commonRequestParameters
)
const response = http.request(
'POST',
url.toString(),
undefined,
mergedRequestParameters
)

return {
response,
}
}

/**
* Merges the provided request parameters with default parameters for the client.
*
* @param {Params} requestParameters - The parameters provided specifically for the request
* @param {Params} commonRequestParameters - Common parameters for all requests
* @returns {Params} - The merged parameters
*/
private _mergeRequestParameters(
requestParameters?: Params,
commonRequestParameters?: Params
): Params {
return {
...commonRequestParameters, // Default to common parameters
...requestParameters, // Override with request-specific parameters
headers: {
...(commonRequestParameters?.headers || {}), // Ensure headers are defined
...(requestParameters?.headers || {}),
},
cookies: {
...(commonRequestParameters?.cookies || {}), // Ensure cookies are defined
...(requestParameters?.cookies || {}),
},
tags: {
...(commonRequestParameters?.tags || {}), // Ensure tags are defined
...(requestParameters?.tags || {}),
},
}
}
}
12 changes: 12 additions & 0 deletions examples/empty_response/single/k6-script.sample.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { ExampleAPIClient } from './exampleAPI.ts'

const baseUrl = '<BASE_URL>'
const exampleAPIClient = new ExampleAPIClient({ baseUrl })

export default function () {
/**
*
*/

const emptyResponseResponseData = exampleAPIClient.emptyResponse()
}
76 changes: 76 additions & 0 deletions examples/empty_response/split/exampleAPI.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
/**
* Automatically generated by @grafana/openapi-to-k6: 0.3.2
* Do not edit manually.
* Example API
* API with all formats of data in the POST request body
* Service version: 1.0.0
*/
import { URL } from 'https://jslib.k6.io/url/1.0.0/index.js'
import http from 'k6/http'
import type { Params, Response } from 'k6/http'

/**
* This is the base client to use for interacting with the API.
*/
export class ExampleAPIClient {
private cleanBaseUrl: string
private commonRequestParameters: Params

constructor(clientOptions: {
baseUrl: string
commonRequestParameters?: Params
}) {
this.cleanBaseUrl = clientOptions.baseUrl.replace(/\/+$/, '')

this.commonRequestParameters = clientOptions.commonRequestParameters || {}
}

emptyResponse(requestParameters?: Params): {
response: Response
} {
const url = new URL(this.cleanBaseUrl + `/empty-response`)
const mergedRequestParameters = this._mergeRequestParameters(
requestParameters || {},
this.commonRequestParameters
)
const response = http.request(
'POST',
url.toString(),
undefined,
mergedRequestParameters
)

return {
response,
}
}

/**
* Merges the provided request parameters with default parameters for the client.
*
* @param {Params} requestParameters - The parameters provided specifically for the request
* @param {Params} commonRequestParameters - Common parameters for all requests
* @returns {Params} - The merged parameters
*/
private _mergeRequestParameters(
requestParameters?: Params,
commonRequestParameters?: Params
): Params {
return {
...commonRequestParameters, // Default to common parameters
...requestParameters, // Override with request-specific parameters
headers: {
...(commonRequestParameters?.headers || {}), // Ensure headers are defined
...(requestParameters?.headers || {}),
},
cookies: {
...(commonRequestParameters?.cookies || {}), // Ensure cookies are defined
...(requestParameters?.cookies || {}),
},
tags: {
...(commonRequestParameters?.tags || {}), // Ensure tags are defined
...(requestParameters?.tags || {}),
},
}
}
}
12 changes: 12 additions & 0 deletions examples/empty_response/split/k6-script.sample.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { ExampleAPIClient } from './exampleAPI.ts'

const baseUrl = '<BASE_URL>'
const exampleAPIClient = new ExampleAPIClient({ baseUrl })

export default function () {
/**
*
*/

const emptyResponseResponseData = exampleAPIClient.emptyResponse()
}
76 changes: 76 additions & 0 deletions examples/empty_response/tags/default.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
/**
* Automatically generated by @grafana/openapi-to-k6: 0.3.2
* Do not edit manually.
* Example API
* API with all formats of data in the POST request body
* Service version: 1.0.0
*/
import { URL } from 'https://jslib.k6.io/url/1.0.0/index.js'
import http from 'k6/http'
import type { Params, Response } from 'k6/http'

/**
* This is the base client to use for interacting with the API.
*/
export class DefaultClient {
private cleanBaseUrl: string
private commonRequestParameters: Params

constructor(clientOptions: {
baseUrl: string
commonRequestParameters?: Params
}) {
this.cleanBaseUrl = clientOptions.baseUrl.replace(/\/+$/, '')

this.commonRequestParameters = clientOptions.commonRequestParameters || {}
}

emptyResponse(requestParameters?: Params): {
response: Response
} {
const url = new URL(this.cleanBaseUrl + `/empty-response`)
const mergedRequestParameters = this._mergeRequestParameters(
requestParameters || {},
this.commonRequestParameters
)
const response = http.request(
'POST',
url.toString(),
undefined,
mergedRequestParameters
)

return {
response,
}
}

/**
* Merges the provided request parameters with default parameters for the client.
*
* @param {Params} requestParameters - The parameters provided specifically for the request
* @param {Params} commonRequestParameters - Common parameters for all requests
* @returns {Params} - The merged parameters
*/
private _mergeRequestParameters(
requestParameters?: Params,
commonRequestParameters?: Params
): Params {
return {
...commonRequestParameters, // Default to common parameters
...requestParameters, // Override with request-specific parameters
headers: {
...(commonRequestParameters?.headers || {}), // Ensure headers are defined
...(requestParameters?.headers || {}),
},
cookies: {
...(commonRequestParameters?.cookies || {}), // Ensure cookies are defined
...(requestParameters?.cookies || {}),
},
tags: {
...(commonRequestParameters?.tags || {}), // Ensure tags are defined
...(requestParameters?.tags || {}),
},
}
}
}
12 changes: 12 additions & 0 deletions examples/empty_response/tags/k6-script.sample.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { DefaultClient } from './default.ts'

const baseUrl = '<BASE_URL>'
const defaultClient = new DefaultClient({ baseUrl })

export default function () {
/**
*
*/

const emptyResponseResponseData = defaultClient.emptyResponse()
}
7 changes: 1 addition & 6 deletions examples/form_data_schema/single/formDataAPI.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,13 +73,8 @@ export class FormDataAPIClient {
'Content-Type': 'multipart/form-data; boundary=' + formData.boundary,
},
})
let data
const data = response.json() as PostUpload200

try {
data = response.json()
} catch {
data = response.body
}
return {
response,
data,
Expand Down
7 changes: 1 addition & 6 deletions examples/form_data_schema/split/formDataAPI.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,13 +56,8 @@ export class FormDataAPIClient {
'Content-Type': 'multipart/form-data; boundary=' + formData.boundary,
},
})
let data
const data = response.json() as PostUpload200

try {
data = response.json()
} catch {
data = response.body
}
return {
response,
data,
Expand Down
7 changes: 1 addition & 6 deletions examples/form_data_schema/tags/default.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,13 +56,8 @@ export class DefaultClient {
'Content-Type': 'multipart/form-data; boundary=' + formData.boundary,
},
})
let data
const data = response.json() as PostUpload200

try {
data = response.json()
} catch {
data = response.body
}
return {
response,
data,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,13 +70,8 @@ export class FormURLEncodedAPIClient {
},
}
)
let data
const data = response.json() as PostSubmitForm200

try {
data = response.json()
} catch {
data = response.body
}
return {
response,
data,
Expand Down
Loading