仪表盘版本
按仪表盘 UID 获取所有仪表盘版本
查询参数
- limit - 返回的最大结果数量
- start - 返回查询时开始的版本
GET /api/dashboards/uid/:uid/versions
获取给定 uid
的仪表盘的所有现有版本。
获取所有仪表盘版本的示例请求:
GET /api/dashboards/uid/QA7wKklGz/versions?limit=2?start=0 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
示例响应
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 428
{
"continueToken": "",
"versions": [
{
"id": 2,
"dashboardId": 1,
"uid": "QA7wKklGz",
"parentVersion": 1,
"restoredFrom": 0,
"version": 2,
"created": "2017-06-08T17:24:33-04:00",
"createdBy": "admin",
"message": "Updated panel title"
},
{
"id": 1,
"dashboardId": 1,
"uid": "QA7wKklGz",
"parentVersion": 0,
"restoredFrom": 0,
"version": 1,
"created": "2017-06-08T17:23:33-04:00",
"createdBy": "admin",
"message": "Initial save"
}
]
}
状态码
- 200 - 成功
- 400 - 错误
- 401 - 未授权
- 404 - 未找到仪表盘版本
按仪表盘 UID 获取仪表盘版本
GET /api/dashboards/uid/:uid/versions/:version
获取给定 UID 的仪表盘的指定版本。
获取仪表盘版本的示例请求:
GET /api/dashboards/uid/QA7wKklGz/versions/1 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
示例响应:
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 1300
{
"id": 1,
"dashboardId": 1,
"uid": "QA7wKklGz",
"parentVersion": 0,
"restoredFrom": 0,
"version": 1,
"created": "2017-04-26T17:18:38-04:00",
"message": "Initial save",
"data": {
"annotations": {
"list": [
]
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": 1,
"links": [
],
"rows": [
{
"collapse": false,
"height": "250px",
"panels": [
],
"repeat": null,
"repeatIteration": null,
"repeatRowId": null,
"showTitle": false,
"title": "Dashboard Row",
"titleSize": "h6"
}
],
"schemaVersion": 14,
"tags": [
],
"templating": {
"list": [
]
},
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {},
"timezone": "browser",
"title": "test",
"version": 1
},
"createdBy": "admin"
}
状态码
- 200 - 成功
- 401 - 未授权
- 404 - 未找到仪表盘版本
按仪表盘 UID 恢复仪表盘
POST /api/dashboards/uid/:uid/restore
使用 uid
将仪表盘恢复到给定的仪表盘版本。
恢复仪表盘版本的示例请求:
POST /api/dashboards/uid/QA7wKklGz/restore
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
{
"version": 1
}
JSON 请求体 schema
- version - 要恢复到的仪表盘版本
示例响应:
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 67
{
"id": 70,
"slug": "my-dashboard",
"status": "success",
"uid": "QA7wKklGz",
"url": "/d/QA7wKklGz/my-dashboard",
"version": 3
}
JSON 响应体 schema
- slug - 仪表盘标题的 URL 友好 slug
- status - 恢复是否成功
- version - 恢复后的新仪表盘版本
状态码
- 200 - 成功
- 400 - 错误请求(指定的版本内容与当前仪表盘相同)
- 401 - 未授权
- 404 - 未找到(未找到仪表盘或仪表盘版本)
- 500 - 内部服务器错误(表示从数据库检索仪表盘标签时出现问题)
示例错误响应
HTTP/1.1 404 Not Found
Content-Type: application/json; charset=UTF-8
Content-Length: 46
{
"message": "Dashboard version not found"
}
JSON 响应体 schema
- message - 解释请求失败原因的消息。
比较仪表盘版本
POST /api/dashboards/calculate-diff
通过计算它们的 JSON diff 来比较两个仪表盘版本。
示例请求:
POST /api/dashboards/calculate-diff HTTP/1.1
Accept: text/html
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
{
"base": {
"dashboardId": 1,
"version": 1
},
"new": {
"dashboardId": 1,
"version": 2
},
"diffType": "json"
}
JSON 请求体 schema
- base - 表示基础仪表盘版本的对象
- new - 表示新仪表盘版本的对象
- diffType - 返回的 diff 类型。可以是 “json” 或 “basic”。
示例响应 (JSON diff):
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
<p id="l1" class="diff-line diff-json-same">
<!-- Diff omitted -->
</p>
响应是 diff 的文本表示,其中仪表盘值为 JSON,类似于 GitHub 或 GitLab 等网站上看到的 diff。
状态码
- 200 - 成功
- 400 - 错误请求(发送的 JSON 无效)
- 401 - 未授权
- 404 - 未找到
示例响应 (basic diff):
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
<div class="diff-group">
<!-- Diff omitted -->
</div>
这里的响应是更改的摘要,它来自两个 JSON 对象之间的 diff。
状态码
- 200 - 成功
- 400 - 错误请求(发送的 JSON 无效)
- 401 - 未授权
- 404 - 未找到