OVPAY-1136 - Added API versioning in HTTP headers.

This commit is contained in:
Bas Boterman 2024-11-19 14:46:13 +01:00
parent 1f9e9c83ac
commit 889eeeb130

View File

@ -9,23 +9,60 @@ paths:
/orders/validation:
post:
tags:
- Order Validation v2
- Order Validation v1 & v2
summary: Validate order.
description: Validate order.
parameters:
- in: header
name: X-HTM-JWT-AUTH-HEADER
required: true
required: false
style: simple
explode: false
schema:
type: string
- in: header
name: Accept-version
required: false
style: simple
explode: false
schema:
type: string
example: "2.0"
description: The version of the API.
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/unavailable"
example:
examples:
v1:
summary: Order validation v1
description: Order validation v1
value:
[
{
"ovPayTokenId": 2,
"serviceReferenceId": "NLOV1234567ABCDEFG",
"amount": 34,
"ovpasNumber": "OV34567",
"productId": 2,
"startDate": "2024-03-22T09:00:00z",
"quantity": 1,
},
{
"ovPayTokenId": 3,
"serviceReferenceId": "NLOV1234567ABCDEFG",
"amount": 89,
"ovpasNumber": "OV34567",
"productId": 4,
"startDate": "2024-03-22T09:00:00z",
"quantity": 4,
},
]
v2:
summary: Order validation v2
description: Order validation v2
value:
{
"purchaseDate": "2024-03-22",
"customerProfileId": 1337,
@ -89,13 +126,50 @@ paths:
},
}
responses:
"201":
description: Created
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/unavailable"
example:
examples:
v1:
summary: Order validation v1
description: Order validation v1
value:
{
"validContents": true,
"amountExclTax": 0,
"taxPercentage": 0,
"amountInclTax": 0,
"contents":
[
{
"ovPayTokenId": 0,
"serviceReferenceId": "string",
"ovpasNumber": "string",
"productId": 0,
"quantity": 0,
"amountExclTax": 0,
"taxPercentage": 0,
"amountInclTax": 0,
"startDate": "string",
"endDate": "string",
"isRenewable": true,
"nextDebitDate": "string",
"termAmountExclTax": 0,
"termAmountInclTax": 0,
"additionalRemarks":
[{ "code": "string", "parameter": "string" }],
"validationErrors":
[{ "detail": "string", "pointer": "string" }],
},
],
}
v2:
summary: Order validation v2
description: Order validation v2
value:
{
"validContents": true,
"purchaseDate": "2024-03-22",
@ -213,13 +287,13 @@ paths:
/orders/{orderId}/fulfillment:
post:
tags:
- Order Fulfillment v2
- Order Fulfillment v1 & v2
summary: Fulfill an order.
description: Fulfill an order.
parameters:
- in: header
name: X-HTM-JWT-AUTH-HEADER
required: true
required: false
style: simple
explode: false
schema:
@ -233,12 +307,64 @@ paths:
type: string
format: uuid
example: a0ef57fa-395c-4a03-96e9-234c26dccea9
- in: header
name: Accept-version
required: false
style: simple
explode: false
schema:
type: string
example: "2.0"
description: The version of the API.
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/unavailable"
example:
examples:
v1:
summary: Order fulfillment v1
description: Order fulfillment v1
value:
{
"customerProfileID": 123415,
"customerProfileData": { "dateOfBirth": "09-03-1989" },
"personalAccountData": { "birthdate": "09-03-1989" },
"directDebitMandate":
{
"consumerName": "J. de Tèster",
"consumerBic": "RABONL2U",
"consumerIban": "NL44RABO0123456789",
},
"orderContents":
[
{
"ovPayTokenId": 123,
"serviceReferenceId": "NLOV1234567ABCDEFG",
"amount": 450,
"ovpasNumber": "63AW974",
"productId": 2,
"startDate": "2024-03-22T09:00:00Z",
"quantity": 1,
"orderlineId": "2d7fadc9-b64b-4516-9a7d-cf550f201372",
},
{
"ovPayTokenId": 123,
"serviceReferenceId": "NLOV1234567ABCDEFG",
"amount": 450,
"ovpasNumber": "63AW974",
"productId": 3,
"startDate": "2024-03-16T09:00:00Z",
"quantity": 1,
"orderlineId": "9d7fadc9-b64b-4516-9a7d-cf550f201378",
},
],
"orderStatus": "succeededPayment",
}
v2:
summary: Order fulfillment v2
description: Order fulfillment v2
value:
{
"orderId": "a0ef57fa-395c-4a03-96e9-234c26dccea9",
"customerProfileId": 1337,
@ -350,7 +476,15 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/unavailable"
example:
examples:
v1:
summary: Order fulfillment v1
description: Order fulfillment v1
value: {}
v2:
summary: Order fulfillment v2
description: Order fulfillment v2
value:
{
"orderId": "a0ef57fa-395c-4a03-96e9-234c26dccea9",
"orderNumber": "123456",
@ -900,7 +1034,7 @@ paths:
example:
{
"orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df",
"orderNumber": "ORD-123456"
"orderNumber": "ORD-123456",
}
delete:
tags: