API lifecycle
1. Versioning
• Production: https://api.mediaconnect.no/capi/v1/...
• Test: https://api-test.mediaconnect.no/capi/v1/ ...
1.1 Semantic versioning
• Major version: Any changes that are not compatible with previous version of API will require a new major version.
• Minior version: This include adding new endpoints, fields or other that are backwards compatible to the API.
• Patch: Small changes like fixing bugs and modify text description of APIs, endpoints, or fields.
1.2 API-lifecycle
1.3 Information about release and deprecation
2. How do Unite inform you
2.1 Statuspage
2.2 Email
3. Backwards compatibility
3.1 Adding a new optional field to an endpoint in request.
Unite may add a GLN number to support international standard, in additional to national organization number.
"CompanyInfo": {
"Companycode": 23467892
}
"CompanyInfo": {
"Companycode": 23467892,
"GLN": 7080001213916,
}
3.2 Adding a new optional field to an endpoint in response.
We may add a field that shows which communication channel the customers used to stop the delivery in Delivery Stop API. We may add “deliveryStopChannel” field to DeliveryStop object.
"deliveryStops": {
"id": 1,
"product": "CO27409",
"stopTime": 1561121761000,
"stopEndTime": 1561985761000,
"stopType": "temporary",
}
"deliveryStops": {
"id": 1,
"product": "CO27409",
"stopTime": 1561121761000,
"stopEndTime": 1561985761000,
"stopType": "temporary",
"deliveryStopChannel": "Email"
}
3.3 Adding a new enum value to a field
For example, we may add a new enum value to the field paymentMethod to add new payment method. This type of change is considered as a backwards compatible change.
3.4 API fields – make it optional from required.
4. Breaking changes
4.1 Changing the name of the field and enum:
The field “accessType” in Access API has following enum A, B and C. Changing these enum to more meaningful name like “FullAccess”, “TemporaryAccess” and “NotAccess” is considered as breaking changes.
4.2 Changing the value of the field
Version 1.3.4:
"orders": {
"orderId": 9,
"orderTime": 1559372400000,
"orderAmount": 295,
"currency": "Norwegian kroner"
"customerNumber": 563457
}
"orders": {
"orderId": 9,
"orderTime": 1559372400000,
"orderAmount": 295,
"currency": "NOK"
"customerNumber": 563457
}