đź“… API Versioning & Compatibility
This article explains how ValueStreamer manages API versions, how to specify them in requests, and how to ensure integrations remain compatible with future versions. It includes an overview of all current module versions, media types, and best practices.
🔍 Contents
-
Prerequisites
-
Versioning Principle in ValueStreamer
-
Overview: Modules, Versions & Media Types
-
Backward Compatibility & Breaking Changes
-
Tips & Best Practices
-
FAQ
đź“‹ Prerequisites
-
Basic knowledge of HTTP requests (setting Accept and Content-Type headers)
-
Access to the latest YAML files for each module (see 📚 API Documentation & YAML Files for download)
ℹ️ Note:
Incorrect or missing version information in headers often results in 415 Unsupported Media Type errors.
🗂️ Versioning Principle in ValueStreamer
-
Versions are module-specific – each API module (e.g., KPI, Taskboard) has its own version.
-
The version is not included in the URL but is specified in the Media Type of the HTTP headers (Accept and, if applicable, Content-Type).
-
Minor changes (e.g., optional fields) are generally backward compatible.
-
Major changes (e.g., renamed fields, changed mandatory fields, modified structures) can cause breaking changes.
📊 Overview: Modules, Versions & Media Types
Module | Version | Media Type (Accept / Content-Type) |
---|---|---|
KPI API | v2.0 | application/vs.v2.0+json |
List Editor | v2.0 | application/vs.v2.0+json |
Taskboard | v1.0.0 | application/json (unless otherwise specified) |
Deviation | v1.0.0 | application/json (module-specific exceptions, see YAML) |
Countermeasures | v1.0.0 | application/json (module-specific exceptions, see YAML) |
Processboard | v1.0.0 | application/vs.pb.v1.0.0+json |
✨ Tip: Check the consumes/produces section in the YAML file to confirm the correct media type.
🔄 Backward Compatibility & Breaking Changes
-
Older versions remain available for a limited period after a new version is released (duration depends on module and release plan).
-
When a new major version is released, it will be announced in the Release Notes and the Support Newsletter.
Examples of Breaking Changes:
-
Added or removed mandatory fields
-
Changed field names
-
Modified response structures
âś… Recommendation: Regularly check integrations against the YAML specification.
⚠️ Warning: For deprecated versions, access may be disabled without further notice once the grace period ends.
✨ Tips & Best Practices
-
Always keep Accept and Content-Type headers consistent with the module version.
-
Use YAML files as a reference – especially before updates.
-
Test new versions in a staging/test environment before going live.
-
Document all API versions used in your systems.
-
Schedule regular review cycles to detect changes early.
âť“ FAQ
How can I find the currently valid version of a module?
→ In the module’s YAML file under info.version
and in the produces/consumes
section.
Do I need to specify the version in the URL path?
→ No, the version is set exclusively in the Media Type header.
What happens if I use the wrong media type?
→ The API responds with 415 Unsupported Media Type.
Will I be warned before an old version is shut down?
→ Yes, via Release Notes and Support communications. The lead time varies by module.