菜单
企业版 开源

仪表盘版本

按仪表盘 UID 获取所有仪表盘版本

查询参数

  • limit - 返回的最大结果数量
  • start - 返回查询时开始的版本

GET /api/dashboards/uid/:uid/versions

获取给定 uid 的仪表盘的所有现有版本。

获取所有仪表盘版本的示例请求:

http
GET /api/dashboards/uid/QA7wKklGz/versions?limit=2?start=0 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

示例响应

http
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 的仪表盘的指定版本。

获取仪表盘版本的示例请求:

http
GET /api/dashboards/uid/QA7wKklGz/versions/1 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

示例响应:

http
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 将仪表盘恢复到给定的仪表盘版本。

恢复仪表盘版本的示例请求:

http
POST /api/dashboards/uid/QA7wKklGz/restore
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

{
  "version": 1
}

JSON 请求体 schema

  • version - 要恢复到的仪表盘版本

示例响应:

http
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
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 来比较两个仪表盘版本。

示例请求:

http
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
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
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 - 未找到