API

La API de Datos Abiertos de Ponferrada 3.0 permite acceder tanto a los metadatos como a los datos de los conjuntos publicados en el sistema de manera estructurada, facilitando la creación de aplicaciones y visualizaciones que empleen los datos de la Iniciativa.

Esta API está basada en la que ofrece el sistema CKAN. Cualquier usuario puede realizar una serie de operaciones, tales como la obtención de los conjuntos de datos publicados o de las distribuciones (ficheros) asociadas a ellos.

Las consultas a la API se realizan mediante HTTP, siendo JSON el formato de intercambio de datos.

Ejemplos de uso

Obtención de los conjuntos de datos

Para obtener los conjuntos de datos publicados en el sistema, se puede hacer una llamada al método package_list (URL /api/3/action/package_list), de donde obtendríamos el siguiente resultado:

{
  "help": "http://***/api/3/action/help_show?name=package_list", 
  "success": true, 
  "result": [ 
    "annakarenina", 
    "warandpeace" 
  ] 
}

En este ejemplo, veríamos que existen 2 conuntos de datos, con identificadores "annakarenina" y "warandpeace".

Obtención de los metadatos de un conjunto de datos

Si queremos obtener los metadatos de un conjutno de datos, emplearíamos package_show, pasándole como argumento "id" el identificador del conjunto (URL /api/3/action/package_show?id=ejemplo-dataset), obteniendo un resultado similar a este:

{
  "help": "http://***/api/3/action/help_show?name=package_show",
  "success": true,
  "result": {
    "license_title": "Otra (Abierta)",
    "maintainer": null,
    "relationships_as_object": [],
    "private": false,
    "maintainer_email": null,
    "num_tags": 3,
    "id": "e1cce9ef-ee66-419e-ab5f-5314045d9d32",
    "metadata_created": "2019-02-28T09:24:16.934913",
    "metadata_modified": "2019-02-28T09:24:16.934918",
    "author": null,
    "author_email": null,
    "state": "active",
    "version": "0.7a",
    "creator_user_id": null,
    "type": "dataset",
    "resources": [
      {
        "mimetype": null,
        "cache_url": null,
        "state": "active",
        "hash": "abc123",
        "description": "Full text. Needs escaping: \" Umlaut: ü",
        "last_modified": null,
        "format": "plain text",
        "url": "http://datahub.io/download/x=1&y=2",
        "name": null,
        "cache_last_updated": null,
        "package_id": "e1cce9ef-ee66-419e-ab5f-5314045d9d32",
        "created": "2019-02-28T09:24:16.962841",
        "size_extra": "123",
        "mimetype_inner": null,
        "url_type": null,
        "position": 0,
        "revision_id": "f9de3949-6ffb-4a6a-9fbd-d51108e14317",
        "datastore_active": false,
        "id": "d37a0f13-d524-4790-9b96-a5b73d83b3c4",
        "resource_type": null,
        "size": null
      },
      {
        "mimetype": null,
        "cache_url": null,
        "state": "active",
        "hash": "def456",
        "description": "Index of the novel",
        "last_modified": null,
        "format": "JSON",
        "url": "http://datahub.io/index.json",
        "name": null,
        "cache_last_updated": null,
        "package_id": "e1cce9ef-ee66-419e-ab5f-5314045d9d32",
        "created": "2019-02-28T09:24:16.962846",
        "size_extra": "345",
        "mimetype_inner": null,
        "url_type": null,
        "position": 1,
        "revision_id": "f9de3949-6ffb-4a6a-9fbd-d51108e14317",
        "datastore_active": false,
        "id": "eaf363a4-3c38-4c43-bfed-e4bae460a5e7",
        "resource_type": null,
        "size": null
      }
    ],
    "num_resources": 2,
    "tags": [
      {
        "vocabulary_id": null,
        "state": "active",
        "display_name": "Flexible ァ",
        "id": "f0950203-3fe8-4167-b8d9-df137ac727fc",
        "name": "Flexible ァ"
      },
      {
        "vocabulary_id": null,
        "state": "active",
        "display_name": "russian",
        "id": "bbec005b-7606-4543-b381-072063d5634a",
        "name": "russian"
      },
      {
        "vocabulary_id": null,
        "state": "active",
        "display_name": "tolstoy",
        "id": "7f7de2f3-3fbf-4156-9c91-dfaef27656a8",
        "name": "tolstoy"
      }
    ],
    "groups": [],
    "license_id": "other-open",
    "relationships_as_subject": [],
    "organization": null,
    "name": "annakarenina",
    "isopen": true,
    "url": "http://datahub.io",
    "notes": "Some test notes\n\n### A 3rd level heading\n\n**Some bolded text.**\n\n*Some italicized text.*\n\nForeign characters:\nu with umlaut ü\n66-style quote “\nforeign word: thümb\n\nNeeds escaping:\nleft arrow \n\n",
    "owner_org": null,
    "extras": [
      {
        "key": "genre",
        "value": "romantic novel"
      },
      {
        "key": "original media",
        "value": "book"
      }
    ],
    "title": "A Novel By Tolstoy",
    "revision_id": "f9de3949-6ffb-4a6a-9fbd-d51108e14317"
  }
}

En esta respuesta se puede ver cómo figuran diversos metadatos, incluyendo el título, la licencia o las etiquetas del conjunto de datos, así como un listado de las distribuciones de que dispone.