Migrate from v1 to v2
Added
We introduced a feature that allows switching between API versions. See Using the API page.
Removed
To make JSON serialization easier, we removed the links section. As a result, all endpoints that return a list of items had to be restructured.
-
API v1.
{
"_links": {
"next": "/projects?size=5&page=2",
"self": "/projects?size=5",
"last": "/projects?size=5&page=4",
"first": "/projects?size=5&page=1"
},
"projects": [
{
"id": 14,
...
}
]
}
Becomes
[
{
"id": 14,
...
}
]
Type |
Tag |
Endpoint |
|
Project |
|
|
Project |
|
|
Project |
|
|
Project |
|
|
Artefact |
|
|
Artefact |
|
|
Artefact |
|
|
Artefact |
|
|
Artefact |
|
|
Artefact |
|
|
Artefact |
|
|
Artefact |
|
|
Artefact |
|
|
Artefact |
|
|
Artefact |
|
|
Artefact |
|
|
Artefact |
|
|
Model |
|
|
Model |
|
|
Model |
|
|
Model |
|
|
Model |
|
|
Model |
|
|
Branch |
|
|
Branch |
|
|
Version |
|
|
Tool |
|
|
Group |
|
|
Group |
|
|
Permission |
|
|
Role |
|
|
Role |
|
|
User |
|
|
User |
|
|
User |
|
Updated
Simplified API path
We removed some path parameters and moved those values into query parameters.
In the example below, the versionId was previously passed as a path parameter (left side), but it is now included as a query parameter.
/versions/{version-id}/artefacts/{artefact-id}
Becomes
/artefacts/{artefact-id}?versionId={versionId}
v1 |
V2 |
/versions/{version-id}/artefacts/{artefact-id} |
/artefacts/{artefact-id}?versionId={versionId} |
/versions/{version-id}/artefacts/{artefact-id}/exportDefinitions |
/artefacts/{artefact-id}/exportDefinitions?versionId={versionId} |
/versions/{version-id}/artefacts/{artefact-id}/exportDefinitions/{export-id} |
/artefacts/{artefact-id}/exportDefinitions/{export-id}?versionId={versionId} |
/versions/{version-id}/artefacts/{artefact-id}/exports/{export-id} |
/artefacts/{artefact-id}/exports/{export-id}?versionId={versionId} |
/versions/{version-id}/artefacts/{artefact-id}/forms |
/artefacts/{artefact-id}/forms?versionId={versionId} |
/versions/{version-id}/artefacts/{artefact-id}/tableDefinitions |
/artefacts/{artefact-id}/tableDefinitions/{table-id}?versionId={versionId} |
/versions/{version-id}/artefacts/{artefact-id}/tableDefinitions/{table-id} |
/artefacts/{artefact-id}/tableDefinitions?versionId={versionId} |
/versions/{version-id}/artefacts/{artefact-id}/chartDefinitions |
/artefacts/{artefact-id}/chartDefinitions?versionId={versionId} |
/versions/{version-id}/artefacts/{artefact-id}/chartDefinitions/{chart-id} |
/artefacts/{artefact-id}/chartDefinitions/{chart-id}?versionId={versionId} |
/versions/{version-id}/artefacts/{artefact-id}/charts/{chart-id} |
/artefacts/{artefact-id}/charts/{chart-id}?versionId={versionId} |
/versions/{version-id}/artefacts/{artefact-id}/reportDefinitions |
/artefacts/{artefact-id}/reportDefinitions?versionId={versionId} |
/versions/{version-id}/artefacts/{artefact-id}/reportDefinitions/{report-id} |
/artefacts/{artefact-id}/reportDefinitions/{report-id}?versionId={versionId} |
/versions/{version-id}/artefacts/{artefact-id}/reports/{report-id} |
/artefacts/{artefact-id}/charts/{report-id}?versionId={versionId} |
/versions/{version-id}/artefacts/{artefact-id}/context |
/artefacts/{artefact-id}/context?versionId={versionId} |
/versions/{version-id}/artefacts/{artefact-id}/logs |
/artefacts/{artefact-id}/logs?versionId={versionId} |
/versions/{version-id}/artefacts/{artefact-id}/parent |
/artefacts/{artefact-id}/parent?versionId={versionId} |
/versions/{version-id}/artefacts/{artefact-id}/children |
/artefacts/{artefact-id}/children?versionId={versionId} |
/versions/{version-id}/artefacts/{artefact-id}/links |
/artefacts/{artefact-id}/links?versionId={versionId} |
/versions/{version-id}/artefacts/{artefact-id}/actionItems |
/artefacts/{artefact-id}/actionItems?versionId={versionId} |
/versions/{version-id}/artefacts/{artefact-id}/indicators |
/artefacts/{artefact-id}/indicators?versionId={versionId} |
/versions/{version-id}/artefacts/{artefact-id}/measures/{measure-id} |
/artefacts/{artefact-id}/measures/{measure-id}?versionId={versionId} |
/versions/{version-id}/artefacts/{artefact-id}/measures |
/artefacts/{artefact-id}/measures?versionId={versionId} |
/versions/{version-id}/artefacts/{artefact-id}/highlightDefinitions |
/artefacts/{artefact-id}/highlightDefinitions?versionId={versionId} |
/versions/{version-id}/artefacts/{artefact-id}/highlightDefinitions/{highlight-id} |
/artefacts/{artefact-id}/highlightDefinitions/{highlight-id}?versionId={versionId} |
/versions/{version-id}/artefacts/{artefact-id}/highlights/{highlight-id} |
/artefacts/{artefact-id}/highlights/{highlight-id}?versionId={versionId} |
/versions/{version-id}/tools |
/tools?versionId={versionId} |
/versions/{version-id}/tools/{tool-id} |
/tools/{tool-id}?versionId={versionId} |
/projects/{project-id}/tools |
/tools?project={projectIdOrName} |
/projects/{project-id}/tools/{tool-id} |
/tools/{tool-id}?project={projectIdOrName} |
Change the date format
In API v1 the date format is a complex timestamp. API v2 changed it with a human-readable string formatted date.
"analysisTime": 1655331650466
Becomes
"analysisTime": "2022-06-02T15:04:39.572+0000"
Type |
Tag |
Endpoint |
|
Project |
|
|
Project |
|
|
Project |
|
|
Project |
|
|
Server |
|
|
Artefact |
|
|
Artefact |
|
|
Artefact |
|
|
Artefact |
|
|
Artefact |
|
|
Finding |
|
|
Action item |
|
|
Task |
|
|
Branch |
|
|
Branch |
|
|
Version |
|
|
Version |
|
|
Model |
|
Update the project field name branchId to mainId
To use more precise terminology, we now refer to the branchId as mainId to clearly indicate that it represents the main branch.
DtoProject.branchId
Becomes
DtoProject2.mainId
Update 200 status to 201 after creation
All POST endpoints that create data are affected by this change. To improve compliance with REST standards, they now return a 201 Created status instead of 200 OK.
Type |
Endpoint |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|