

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# API de versiones del panel
<a name="Grafana-API-DashboardVersions"></a>

Use la API de versiones del panel para recuperar las versiones del panel y restaurar un panel a una versión especificada.

**nota**  
Para usar una API de Grafana con su espacio de trabajo de Amazon Managed Grafana, debe tener un token de API de Grafana que sea válido. Lo incluye en el campo `Authorization` de la solicitud de API. Para obtener información sobre cómo crear un token para autenticar sus llamadas a la API, consulte [Autenticación con tokens](authenticating-grafana-apis.md).

## Obtención de todas las versiones del panel
<a name="Grafana-API-DashboardVersions-getall"></a>

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

Obtiene todas las versiones del panel existentes mediante el `dashboardId` indicado.

Parámetros de consulta:
+ **limit**: número máximo de resultados que devolver.
+ **start**: versión desde la cual empezar cuando se devuelven las consultas.

**Ejemplo de solicitud**

```
GET /api/dashboards/id/1/versions?limit=2?start=0 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**Ejemplo de respuesta**

```
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"
  }
]
```

Códigos de estado:
+ **200**: correcto.
+ **400**: errores.
+ **401**: no autorizado.
+ **404**: no se encontró la versión del panel.

## Obtención de una versión del panel
<a name="Grafana-API-DashboardVersions-get"></a>

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

Obtenga una versión del panel con el ID indicado, para el panel con el `dashboardId` indicado.

**Ejemplo de solicitud**

```
GET /api/dashboards/id/1/versions/1 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**Ejemplo de respuesta**

```
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"
}
```

Códigos de estado:
+ **200**: correcto.
+ **401**: no autorizado.
+ **404**: no se encontró la versión del panel.

## Restauración de un panel
<a name="Grafana-API-DashboardVersions-restore"></a>

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

Restaura un panel a la versión que especifique.

**Ejemplo de solicitud**

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

{
  "version": 1
}
```

Esquema de cuerpo JSON:
+ **version**: versión del panel que se va a restaurar. 

**Ejemplo de respuesta**

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

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

Esquema del cuerpo de la respuesta JSON:
+ **slug**: el slug del título del panel, apto para URL. 
+ **status**. si la restauración se ha completado correctamente o no.
+ **version**: nueva versión del panel tras la restauración.

Códigos de estado:
+ **200**: creado.
+ **401**: no autorizado.
+ **404**: no se encontró el panel o la versión del panel.
+ **500**: error interno del servidor (indica un problema al recuperar las etiquetas del panel de la base de datos).

Ejemplo de respuesta de error:

```
HTTP/1.1 404 Not Found
Content-Type: application/json; charset=UTF-8
Content-Length: 46

{
  "message": "Dashboard version not found"
}
```

Esquema del cuerpo de la respuesta JSON:
+ **message**: mensaje que explica el motivo del error. 

## Comparación de versiones del panel
<a name="Grafana-API-DashboardVersions-compare"></a>

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

Compara dos versiones del panel calculando su diferencia en JSON.

**Ejemplo de solicitud**

```
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"
}
```

Esquema de cuerpo JSON:
+ **base**: objeto que representa la versión base del panel. 
+ **new**: objeto que representa la versión nueva del panel. 
+ **difftype**: tipo de diferencia que se va a devolver. Los valores válidos son `json` y `basic`.

Ejemplo de respuesta (diferencia en 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>
```

La respuesta es una representación textual de la diferencia, con los valores del panel en JSON, similar a las diferencias que se ven en sitios como GitHub o. GitLab

Códigos de estado:
+ **200**: correcto.
+ **200**: solicitud incorrecta, se envió un JSON no válido.
+ **401**: no autorizado.
+ **404**: no encontrado.

Ejemplo de respuesta (diferencia básica)

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

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

La respuesta es un resumen de los cambios, derivado de la diferencia entre los dos objetos JSON.

Códigos de estado:
+ **200**: correcto.
+ **200**: solicitud incorrecta, se envió un JSON no válido.
+ **401**: no autorizado.
+ **404**: no encontrado.