I want to validate an API request and response against the swagger json file.
This works fine, as long as I have a body or response
I my case I never have a request body, I only pass parameters.
When the httpcode 204 No Content is return I also don’t have a response body.
How can I validate against and empty request body or response body.
thx.
my request and response are below:
{
"log" : {
"version" : "1.2",
"pages" : [ ],
"entries" : [ {
"startedDateTime" : "2023-10-25T13:18:52.853Z",
"request" : {
"method" : "GET",
"url" : "https://xxxx/dev/Transaction?storeId=xxxx&transactionCode=xxx",
"httpVersion" : "",
"cookies" : [ ],
"headers" : [ {
"name" : "Authorization",
"value" : "Bearer xxxxxxxxx"
} ],
"queryString" : [ {
"name" : "storeId",
"value" : "xxxx"
}, {
"name" : "transactionCode",
"value" : "xxx"
} ],
"headersSize" : 0,
"bodySize" : 0,
"comment" : ""
},
"response" : {
"status" : 204,
"statusText" : "",
"httpVersion" : "",
"cookies" : [ ],
"headers" : [ {
"name" : "Strict-Transport-Security",
"value" : "max-age=15724800; includeSubDomains"
}, {
"name" : "#status#",
"value" : "HTTP/1.1 204 No Content"
}, {
"name" : "Content-Length",
"value" : "0"
}, {
"name" : "Date",
"value" : "Wed, 25 Oct 2023 13:18:50 GMT"
} ],
"content" : {
"size" : 0,
"mimeType" : "",
"text" : "",
"comment" : ""
},
"redirectURL" : "",
"headersSize" : 108,
"bodySize" : 0,
"comment" : ""
},
"cache" : { },
"timings" : {
"comment" : "",
"connect" : 0,
"wait" : 0,
"send" : 0,
"receive" : 0,
"dns" : -1,
"blocked" : -1,
"ssl" : -1
},
"comment" : "",
"_katalonRequestInformation" : {
"name" : "4",
"testObjectId" : "Object Repository/Transactions Read Service_Dev/_TransactionsRead_Transaction/get-transaction",
"harId" : "47a0c846-e3c3-4b53-8fc0-b345903b5458",
"reportFolder" : null
},
"time" : 0
} ],
"comment" : ""
}
}
my json file to validate against is below
`{
"$schema": "http://json-schema.org/draft-06/schema#",
"openapi": "3.0.1",
"info": {
"title": "Transactions Read Service_Dev",
"version": "1.0"
},
"servers": [
{
"url": "https:/xxx/dev/"
}
],
"paths": {
"/TransactionsRead/Search": {
"post": {
"tags": [
"Transaction"
],
"summary": "/Search - POST",
"operationId": "post-search",
"parameters": [
{
"name": "storeId",
"in": "query",
"schema": {
"type": "string"
}
},
{
"name": "pagenum",
"in": "query",
"description": "Format - int32.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "pagesize",
"in": "query",
"description": "Format - int32.",
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DTO_SearchFilter"
},
"example": {
"employeeId": "string",
"pauzed": "Yes",
"fromDate": "string",
"toDate": "string",
"transactionCode": "string",
"businessPartnerId": "string",
"businessPartnerName": "string",
"sortTransactionDate": "Ascending"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/DTO_SearchFilter"
},
"example": {
"employeeId": "string",
"pauzed": "Yes",
"fromDate": "string",
"toDate": "string",
"transactionCode": "string",
"businessPartnerId": "string",
"businessPartnerName": "string",
"sortTransactionDate": "Ascending"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/DTO_SearchFilter"
},
"example": {
"employeeId": "string",
"pauzed": "Yes",
"fromDate": "string",
"toDate": "string",
"transactionCode": "string",
"businessPartnerId": "string",
"businessPartnerName": "string",
"sortTransactionDate": "Ascending"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/DTO_Search_Result"
},
"examples": {
"default": {
"value": null
}
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/DTO_Search_Result"
},
"example": {
"totalCount": 0,
"pageNum": 0,
"pageSize": 0,
"transactions": [
{
"transactionCode": "string",
"transactionDate": "string",
"status": "string",
"transactionType": "string",
"businessPartnerId": "string",
"businessPartnerName": "string",
"totalAmount": 0,
"updateDate": "string"
}
]
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/DTO_Search_Result"
},
"example": {
"totalCount": 0,
"pageNum": 0,
"pageSize": 0,
"transactions": [
{
"transactionCode": "string",
"transactionDate": "string",
"status": "string",
"transactionType": "string",
"businessPartnerId": "string",
"businessPartnerName": "string",
"totalAmount": 0,
"updateDate": "string"
}
]
}
}
}
},
"204": {
"description": "No Content"
},
"400": {
"description": "Bad Request",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
},
"examples": {
"default": {
"value": null
}
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
},
"example": {
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
},
"example": {
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string"
}
}
}
},
"500": {
"description": "Server Error"
}
}
}
},
"/TransactionsRead/Transaction": {
"get": {
"tags": [
"Transaction"
],
"summary": "/Transaction - GET",
"operationId": "get-transaction",
"parameters": [
{
"name": "storeId",
"in": "query",
"schema": {
"type": "string"
}
},
{
"name": "transactionCode",
"in": "query",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/DTO_Transaction"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/DTO_Transaction"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/DTO_Transaction"
}
}
}
},
"204": {
"description": "No Content"
},
"400": {
"description": "Bad Request",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
},
"examples": {
"default": {
"value": null
}
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
},
"example": {
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
},
"example": {
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string"
}
}
}
},
"500": {
"description": "Server Error"
}
}
}
}
},
"components": {
"schemas": {
"DTO_Address": {
"type": "object",
"properties": {
"addressId": {
"type": "string",
"nullable": true
},
"type": {
"type": "string",
"nullable": true
},
"street": {
"type": "string",
"nullable": true
},
"streetNo": {
"type": "string",
"nullable": true
},
"streetNoSuffix": {
"type": "string",
"nullable": true
},
"zipCode": {
"type": "string",
"nullable": true
},
"city": {
"type": "string",
"nullable": true
},
"region": {
"type": "string",
"nullable": true
},
"countryCode": {
"type": "string",
"nullable": true
},
"isOneTimeAddress": {
"type": "boolean"
}
},
"additionalProperties": false
},
"DTO_Batch_Serial_Numbers": {
"type": "object",
"properties": {
"number": {
"type": "string",
"nullable": true
},
"quantity": {
"type": "number",
"format": "double"
}
},
"additionalProperties": false
},
"DTO_BusinessPartner": {
"type": "object",
"properties": {
"internalId": {
"type": "string",
"nullable": true
},
"businessPartnerId": {
"type": "string",
"nullable": true
},
"name": {
"type": "string",
"nullable": true
},
"addresses": {
"type": "array",
"items": {
"$ref": "#/components/schemas/DTO_Address"
},
"nullable": true
},
"contactperson": {
"$ref": "#/components/schemas/DTO_Contactperson"
}
},
"additionalProperties": false
},
"DTO_Contactperson": {
"type": "object",
"properties": {
"contactId": {
"type": "string",
"nullable": true
},
"givenName": {
"type": "string",
"nullable": true
},
"surName": {
"type": "string",
"nullable": true
},
"prefix": {
"type": "string",
"nullable": true
},
"saluation": {
"type": "string",
"nullable": true
},
"emailAddress": {
"type": "string",
"nullable": true
},
"phoneNumbers": {
"type": "array",
"items": {
"type": "string"
},
"nullable": true
}
},
"additionalProperties": false
},
"DTO_Currency": {
"type": "object",
"properties": {
"currencyCode": {
"type": "string",
"nullable": true
},
"currencyName": {
"type": "string",
"nullable": true
},
"currencySign": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"DTO_Header_Discounts": {
"type": "object",
"properties": {
"sequence": {
"type": "integer",
"format": "int32"
},
"reason": {
"$ref": "#/components/schemas/DTO_Reason"
},
"discountPercentage": {
"type": "number",
"format": "double"
},
"discountAmount": {
"type": "number",
"format": "double"
}
},
"additionalProperties": false
},
"DTO_Image": {
"type": "object",
"properties": {
"type": {
"type": "string",
"nullable": true
},
"url": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"DTO_Line": {
"type": "object",
"properties": {
"lineNum": {
"type": "integer",
"format": "int32"
},
"itemId": {
"type": "string",
"nullable": true
},
"itemName": {
"type": "string",
"nullable": true
},
"itemType": {
"type": "string",
"nullable": true
},
"quantity": {
"type": "number",
"format": "double"
},
"multiplyQuantity": {
"type": "number",
"format": "double"
},
"minQuantity": {
"type": "number",
"format": "double"
},
"unitGroup": {
"$ref": "#/components/schemas/DTO_UnitGroup"
},
"unitPriceEx": {
"type": "number",
"format": "double"
},
"vatAmountPerUnit": {
"type": "number",
"format": "double"
},
"lineTotalEx": {
"type": "number",
"format": "double"
},
"vatCode": {
"type": "string",
"nullable": true
},
"vatRate": {
"type": "number",
"format": "double"
},
"includeVat": {
"type": "boolean"
},
"isManualPrice": {
"type": "boolean"
},
"isVariablePriceItem": {
"type": "boolean"
},
"batch_Serial_Numbers": {
"type": "array",
"items": {
"$ref": "#/components/schemas/DTO_Batch_Serial_Numbers"
},
"nullable": true
},
"linked_Items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/DTO_Line"
},
"nullable": true
},
"transportationMethod": {
"$ref": "#/components/schemas/DTO_TransportationMethod"
},
"discountReason": {
"$ref": "#/components/schemas/DTO_Reason"
},
"discountPercentage": {
"type": "number",
"format": "double"
},
"discountPerUnitEx": {
"type": "number",
"format": "double"
},
"returnReason": {
"$ref": "#/components/schemas/DTO_Reason"
},
"images": {
"type": "array",
"items": {
"$ref": "#/components/schemas/DTO_Image"
},
"nullable": true
},
"shippingDate": {
"type": "string",
"format": "date-time",
"nullable": true
},
"comments": {
"type": "string",
"nullable": true
},
"priceComment": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"DTO_Payment": {
"type": "object",
"properties": {
"paymentTypeId": {
"type": "string",
"nullable": true
},
"name": {
"type": "string",
"nullable": true
},
"description": {
"type": "string",
"nullable": true
},
"paymentAmount": {
"type": "number",
"format": "double"
},
"paymentJournal": {
"type": "string",
"nullable": true
},
"uniqueNumber": {
"type": "string",
"nullable": true
},
"drawerId": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"DTO_Reason": {
"type": "object",
"properties": {
"reasonId": {
"type": "string",
"nullable": true
},
"name": {
"type": "string",
"nullable": true
},
"description": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"DTO_SearchFilter": {
"type": "object",
"properties": {
"employeeId": {
"type": "string",
"nullable": true
},
"pauzed": {
"$ref": "#/components/schemas/YesNoEnum"
},
"fromDate": {
"type": "string",
"format": "date-time",
"nullable": true
},
"toDate": {
"type": "string",
"format": "date-time",
"nullable": true
},
"transactionCode": {
"type": "string",
"nullable": true
},
"businessPartnerId": {
"type": "string",
"nullable": true
},
"businessPartnerName": {
"type": "string",
"nullable": true
},
"sortTransactionDate": {
"$ref": "#/components/schemas/SortEnum"
}
},
"additionalProperties": false
},
"DTO_Search_Result": {
"type": "object",
"properties": {
"totalCount": {
"type": "integer",
"format": "int64"
},
"pageNum": {
"type": "integer",
"format": "int32",
"nullable": true
},
"pageSize": {
"type": "integer",
"format": "int32",
"nullable": true
},
"transactions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/DTO_Search_Transactions"
},
"nullable": true
}
},
"additionalProperties": false
},
"DTO_Search_Transactions": {
"type": "object",
"properties": {
"transactionCode": {
"type": "string",
"nullable": true
},
"transactionDate": {
"type": "string",
"format": "date-time",
"nullable": true
},
"status": {
"type": "string",
"nullable": true
},
"transactionType": {
"type": "string",
"nullable": true
},
"businessPartnerId": {
"type": "string",
"nullable": true
},
"businessPartnerName": {
"type": "string",
"nullable": true
},
"totalAmount": {
"type": "number",
"format": "double"
},
"updateDate": {
"type": "string",
"format": "date-time",
"nullable": true
}
},
"additionalProperties": false
},
"DTO_Transaction": {
"type": "object",
"properties": {
"_Id": {
"type": "string",
"nullable": true
},
"transactionCode": {
"type": "string",
"nullable": true
},
"transactionDate": {
"type": "string",
"format": "date-time",
"nullable": true
},
"transactionType": {
"type": "string",
"nullable": true
},
"status": {
"type": "string",
"nullable": true
},
"quotationDueDate": {
"type": "string",
"format": "date-time",
"nullable": true
},
"storeId": {
"type": "string",
"nullable": true
},
"employeeId": {
"type": "string",
"nullable": true
},
"employeeName": {
"type": "string",
"nullable": true
},
"businessPartner": {
"$ref": "#/components/schemas/DTO_BusinessPartner"
},
"customerReference": {
"type": "string",
"nullable": true
},
"currency": {
"$ref": "#/components/schemas/DTO_Currency"
},
"totalAmountEx": {
"type": "number",
"format": "double"
},
"totalVatAmount": {
"type": "number",
"format": "double"
},
"roundingAmount": {
"type": "number",
"format": "double"
},
"transportationMethod": {
"$ref": "#/components/schemas/DTO_TransportationMethod"
},
"itemLines": {
"type": "array",
"items": {
"$ref": "#/components/schemas/DTO_Line"
},
"nullable": true
},
"paymentLines": {
"type": "array",
"items": {
"$ref": "#/components/schemas/DTO_Payment"
},
"nullable": true
},
"discounts": {
"type": "array",
"items": {
"$ref": "#/components/schemas/DTO_Header_Discounts"
},
"nullable": true
},
"receipts": {
"type": "array",
"items": {
"type": "string"
},
"nullable": true
},
"comments": {
"type": "string",
"nullable": true
},
"updateDate": {
"type": "string",
"format": "date-time",
"nullable": true
}
},
"additionalProperties": false
},
"DTO_TransportationMethod": {
"type": "object",
"properties": {
"transportationMethodId": {
"type": "string",
"nullable": true
},
"name": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"DTO_UnitGroup": {
"type": "object",
"properties": {
"unitGroupCode": {
"type": "string",
"nullable": true
},
"unitGroupName": {
"type": "string",
"nullable": true
},
"itemQuantity": {
"type": "number",
"format": "double"
},
"multiplyQuantity": {
"type": "number",
"format": "double"
},
"minQuantity": {
"type": "number",
"format": "double"
}
},
"additionalProperties": false
},
"ProblemDetails": {
"type": "object",
"properties": {
"type": {
"type": "string",
"nullable": true
},
"title": {
"type": "string",
"nullable": true
},
"status": {
"type": "integer",
"format": "int32",
"nullable": true
},
"detail": {
"type": "string",
"nullable": true
},
"instance": {
"type": "string",
"nullable": true
}
},
"additionalProperties": {}
},
"SortEnum": {
"enum": [
"Ascending",
"Descending"
],
"type": "string"
},
"YesNoEnum": {
"enum": [
"Yes",
"No"
],
"type": "string"
}
},
"securitySchemes": {
"apiKeyHeader": {
"type": "apiKey",
"name": "Ocp-Apim-Subscription-Key",
"in": "header"
},
"apiKeyQuery": {
"type": "apiKey",
"name": "subscription-key",
"in": "query"
}
}
},
"security": [
{
"apiKeyHeader": []
},
{
"apiKeyQuery": []
}
]
}`