
El Idescat expone parte de sus datos a través de una colección de APIs de tipo REST (RESTful Web Services). Las APIs del Idescat ofrecen métodos para que los programas de terceros puedan obtener información del Instituto de Estadística de Cataluña e integrarla en otros servicios. La utilización de cualquiera de las APIs del Idescat conlleva la aceptación de las condiciones de uso del servicio.
| URI base | http://api.idescat.cat/{servicio}/v{versión principal}/{operación}.{formato}[?parámetros] |
|---|---|
| Método HTTP | GET |
| Formatos de la respuesta | xml, json, php |
| Versión | 1.00 (14.12.2009) |
| Atajos | Petición, Respuesta |
Toda petición debe especificar obligatoriamente un servicio, la versión principal del servicio, una operación válida por este servicio y un formato de respuesta. Opcionalmente, se pueden especificar una serie de parámetros generales y específicos del servicio.
http://api.idescat.cat/{servicio}/v{versión principal}/{operación}.{formato}[?parámetros]
Cada servicio dispone de un identificador, de una versión y de unos parámetros específicos. Por ejemplo, el servicio de Indicadores al día se identifica con el valor indicadors y sólo dispone de una versión (1).
http://api.idescat.cat/indicadors/v1/{…}
El identificador del servicio determina el elemento raíz del documento retornado.
Los servicios pueden tener diferentes versiones principales, incompatibles entre sí. Las mejoras incrementales no afectan a la versión principal (por ejemplo, 1.01 respecto a 1.00) y, por lo tanto, tampoco a la petición.
Los servicios suelen soportar una diversidad de operaciones. Por ejemplo, el servicio indicadors admite la operación dades, que retorna resultados estadísticos, pero también la operación nodes.
http://api.idescat.cat/indicadors/v1/dades.{…}
http://api.idescat.cat/indicadors/v1/nodes.{…}
El servicio y la operación determinan la estructura del documento retornado.
Determina el formato de la salida. Admite tres valores:
http://api.idescat.cat/indicadors/v1/dades.xml http://api.idescat.cat/indicadors/v1/dades.php http://api.idescat.cat/indicadors/v1/dades.json http://api.idescat.cat/indicadors/v1/dades.json?callback=f
Toda petición tiene unos parámetros generales (comunes a todos los servicios) y unos parámetros específicos del servicio, documentados en la API del servicio.
Admite tres valores:
http://api.idescat.cat/indicadors/v1/dades.xml?lang=es
Este parámetro admite dos valores: utf-8 (valor por defecto) e iso-8859-1.
http://api.idescat.cat/indicadors/v1/dades.xml?enc=iso-8859-1
Si el formato de la respuesta es php la codificación es UTF-8, sea cual sea el valor de enc.
Además de los parámetros generales descritos en el apartado anterior, cada servicio admite unos parámetros específicos ("variables") que permiten configurar la información obtenida. Estos parámetros están documentados en la API del servicio.
Por ejemplo, la operación dades del servicio indicadors permite seleccionar el número de indicadores obtenidos gracias a los parámetros tt, max y min.
http://api.idescat.cat/indicadors/v1/dades.xml?tt=10&max=10&min=3
Las variables del servicio (o "parámetros específicos") pueden encapsularse en un parámetro general para efectuar una llamada más compacta. Para hacerlo hay que incluir una serie de parejas variable/valor separadas por puntos y coma.
http://api.idescat.cat/indicadors/v1/dades.json?tt=10&max=10&min=3 http://api.idescat.cat/indicadors/v1/dades.json?p=tt/10;max/10;min/3
En caso de que el servidor no pueda atender la petición, el código retornado será 500 (Server Error) o 503 (Service Unavailable). En el resto de casos, podemos distinguir tres tipos de petición que retornan diferentes códigos de respuesta HTTP:
En el último caso, el documento retornado contendrá información del servicio que lo ha generado, el código de error (dentro del elemento error) y el parámetro o parámetros obligatorios de los cuales no se ha especificado valor (dentro de un elemento missing para cada parámetro ausente).
http://api.idescat.cat/indicadors/v1/dades.xml?i=
<?xml version="1.0" encoding="utf-8" ?> <indicadors version="1.00" o="dades"> <error>400</error> <missing>i</missing> </indicadors>
En la actualidad, los formatos de salida soportados son XML, JSON y PHP serializado. Para más información, consulte la sección 1.1.3 Formato.