Skip to content

Api versioning💡

Sometimes it is necessary to make backwards incompatible changes to an API. This may lead to breakage of dependent services.

The 3DI API versioning policy limits breaking changes by introducing "stable" and "beta" stability levels, each with a different contract:

  • The "stable" version V3 does not get backwards incompatible changes. It is long-lived.
  • The "beta" version v3-beta may get backwards incompatible changes, but they must be announced beforehand. Features in "beta" may graduate to "stable".

The different versions are all listed in 1 API root.

If necessary, a complete version (stable, beta) may be deprecated (removed). This must be announced at least 180 days beforehand.

The "beta" is a superset of "stable". It is allowed to put redirects beta -> stable and as such hide them in the API endpoint listing and in the OpenAPI specification.

This policy is based on the Google versioning policy:

Threedi and threedicore versioning💡

The following two version numbers describe the 3Di framwork version and the threedicore (calccore) version.

  • The threedi_version is increased when the 3Di framework is updated.
  • The threedicore_version is increased when the calcore is updated.

An update can contain bugfixes and/or new features.

Note: These version numbers can be found in /swagger or v3-beta/status/current-version/