

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 대시보드 버전 API
<a name="Grafana-API-DashboardVersions"></a>

대시보드 버전 API를 사용하여 대시보드 버전을 검색하고 대시보드를 지정된 버전으로 복원합니다.

**참고**  
Amazon Managed Grafana 워크스페이스에서 Grafana API를 사용하려면 유효한 Grafana API 토큰이 있어야 합니다. API 요청의 `Authorization` 필드에 이를 포함합니다. API 직접 호출을 인증하기 위해 토큰을 생성하는 방법에 대한 자세한 내용은 [토큰으로 인증](authenticating-grafana-apis.md) 섹션을 참조하세요.

## 모든 대시보드 버전 가져오기
<a name="Grafana-API-DashboardVersions-getall"></a>

```
GET /api/dashboards/id/:dashboardId/versions
```

지정된 `dashboardId`를 사용하여 대시보드의 모든 기존 대시보드 버전을 가져옵니다.

쿼리 파라미터:
+ **limit** - 반환할 최대 결과 수.
+ **start** - 쿼리를 반환할 때 시작할 버전.

**요청 예제**

```
GET /api/dashboards/id/1/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

[
  {
    "id": 2,
    "dashboardId": 1,
    "parentVersion": 1,
    "restoredFrom": 0,
    "version": 2,
    "created": "2017-06-08T17:24:33-04:00",
    "createdBy": "admin",
    "message": "Updated panel title"
  },
  {
    "id": 1,
    "dashboardId": 1,
    "parentVersion": 0,
    "restoredFrom": 0,
    "version": 1,
    "created": "2017-06-08T17:23:33-04:00",
    "createdBy": "admin",
    "message": "Initial save"
  }
]
```

상태 코드:
+ **200** - 정상
+ **400** - 오류
+ **401** - 권한이 없음
+ **404** - 대시보드 버전을 찾을 수 없음

## 대시보드 버전 가져오기
<a name="Grafana-API-DashboardVersions-get"></a>

```
GET /api/dashboards/id/:dashboardId/versions/:id
```

지정된 `dashboardId`의 대시보드에 대해 지정된 ID의 대시보드 버전을 가져옵니다.

**요청 예제**

```
GET /api/dashboards/id/1/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,
  "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,
    "hideControls": false,
    "id": 1,
    "links": [

    ],
    "rows": [
      {
        "collapse": false,
        "height": "250px",
        "panels": [

        ],
        "repeat": null,
        "repeatIteration": null,
        "repeatRowId": null,
        "showTitle": false,
        "title": "Dashboard Row",
        "titleSize": "h6"
      }
    ],
    "schemaVersion": 14,
    "style": "dark",
    "tags": [

    ],
    "templating": {
      "list": [

      ]
    },
    "time": {
      "from": "now-6h",
      "to": "now"
    },
    "timepicker": {
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ]
    },
    "timezone": "browser",
    "title": "test",
    "version": 1
  },
  "createdBy": "admin"
}
```

상태 코드:
+ **200** - 정상
+ **401** - 권한이 없음
+ **404** - 대시보드 버전을 찾을 수 없음

## 대시보드 복원
<a name="Grafana-API-DashboardVersions-restore"></a>

```
POST /api/dashboards/id/:dashboardId/restore
```

지정한 대시보드 버전으로 대시보드를 복원합니다.

**요청 예제**

```
POST /api/dashboards/id/1/restore
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

{
  "version": 1
}
```

JSON 본문 스키마:
+ **version** - 복원할 대시보드 버전.

**응답의 예**

```
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 67

{
  "slug": "my-dashboard",
  "status": "success",
  "version": 3
}
```

JSON 응답 본문 스키마:
+ **slug** - 대시보드 제목의 URL 친화적 슬러그.
+ **status** - 복원 성공 여부.
+ **version** - 복원 후 새 대시보드 버전.

상태 코드:
+ **200** - 생성됨
+ **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 응답 본문 스키마:
+ **message** - 실패 이유를 설명하는 메시지.

## 대시보드 버전 비교
<a name="Grafana-API-DashboardVersions-compare"></a>

```
POST /api/dashboards/calculate-diff
```

두 대시보드 버전의 JSON 차이를 계산하여 비교합니다.

**요청 예제**

```
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 본문 스키마:
+ **base** - 기본 대시보드 버전을 나타내는 객체.
+ **new** - 새 대시보드 버전을 나타내는 객체.
+ **difftype** - 반환할 차이의 유형. 유효 값은 `json` 및 `basic`입니다.

예제 응답(JSON 차이)

```
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8

<p id="l1" class="diff-line diff-json-same">
  <!-- Diff omitted -->
</p>
```

응답은 GitHub 또는 GitLab GitLab과 같은 사이트에서 볼 수 있는 차이와 마찬가지로 차이의 텍스트 표현(대시보드 값이 JSON으로 표시됨)입니다.

상태 코드:
+ **200** - 정상
+ **200** - 잘못된 요청, 잘못된 JSON이 전송됨
+ **401** - 권한이 없음
+ **404** - 찾을 수 없음

예제 응답(기본 차이)

```
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8

<div class="diff-group">
  <!-- Diff omitted -->
</div>
```

응답은 두 JSON 객체 간 차이에서 파생된 변경 사항을 요약한 것입니다.

상태 코드:
+ **200** - 정상
+ **200** - 잘못된 요청, 잘못된 JSON이 전송됨
+ **401** - 권한이 없음
+ **404** - 찾을 수 없음