En primer lugar cabe remarcar que la presente plataforma y sus contenidos están pensados
para ser entendidos y aprovechados por programadores informáticos. Si no eres programador
(o simplemente te inicias ahora en el mundo de las APIs)
basta con que entiendas que una API abierta como ésta le permite a cualquiera
obtener información registrada de la base de datos desde cualquier lugar con acceso a internet.
No estamos hablando de que se puedan "navegar" los contenidos mediante una web al uso
(eso sería una de las aplicaciones posibles), sino de que se pueden solicitar a voluntad
y ser entendidos por programas informáticos (como una web o una APP móvil).
Por tanto, si quieres hacer uso de nuestros datos de turismo usando la API pero
no eres programador, basta con que te pongas en contacto con uno y le muestres esta página.
IMPORTANTE: Las llamadas clicables aquí descritas como ejemplo (en azul), son
ejemplos reales y funcionales.
La forma de solicitar la información se realiza mediante una llamada que, en nuestro caso, se puede "copiar y pegar" en la barra de direcciones de tu navegador para obtener el resultado y comprobar de forma fácil que funciona.
Las llamadas se hacen por protocolo https a la siguiente url tipo:
https://api.valldalbaida.com/opendata/?r=es/{peticion}/{opciones}
...donde {peticion} es la petición base, y {opciones} son las opciones (si se necesitaran) que detallarían la petición que se solicita.
La respuesta siempre viene dada en formato JSON.
En caso de error, o de listado de contenido vacío, la respuesta devuelve un JSON de este estilo:
{"error":"contenido no encontrado"}
Un JSON no es más que una estructura de datos en un formato que cualquier
lenguaje de programación sabe transformar rápidamente a su tipo de variables para usar
esos datos como propios.
Es, por tanto, un formato pensado para las máquinas (aunque bastante legible para
el humano). No obstante, el JSON devuelto puede ser "copiado y pegado" en webs como
jsoneditoronline.org para poder ver los datos
de manera más amigable para nosotros.
Ejemplo en PHP:
<?php
$taxonomiaJSONliteral = file_get_contents ("https://api.valldalbaida.com/opendata/?r=es/taxonomia");
$taxonomiaArrayPHP = json_decode ($taxonomiaJSONliteral,true);
print_r ($taxonomiaArrayPHP);
?>
Descargar de golpe todos los contenidos puede ser demasiado pesado para enviar y procesar. Sin embargo, a veces resulta útil obtener un listado de ítems para comprobar actualizaciones o para saber qué contenidos hemos solicitado y cuáles no.
Por ello ofrecemos la siguiente petición, la cual devuelve un simple array de identificadores de contenido (en adelante, 'id') en el que se incluyen todos los id de todos los contenidos existentes.
https://api.valldalbaida.com/opendata/?r=es/todo
Con la siguiente llamada obtenemos todos los datos del contenido solicitado:
· https://api.valldalbaida.com/opendata/?r=es/contenido/{id}
Sirvan de ejemplo las siguientes llamadas:
· https://api.valldalbaida.com/opendata/?r=es/contenido/34 : Ontinyent
· https://api.valldalbaida.com/opendata/?r=es/contenido/53 : Font Jordana
· https://api.valldalbaida.com/opendata/?r=es/contenido/380 : Palacio del Marqués de Otos
NOTAS:
Los contenidos turísticos están clasificados en 3 niveles de categorías.
Tipo 1: Es la clasificación básica. Se compone de:
· Municipios (idtipo1=1)
· Productos Locales (idtipo1=2)
· Entidades (idtipo1=3)
· Alojamientos (idtipo1=4)
· Restauración (idtipo1=5)
· Locales de Ocio (idtipo1=6)
· Patrimonio (idtipo1=7)
· Eventos (idtipo1=8)
· Actividades (idtipo1=9)
· Rutas (idtipo1=10)
· Comercios (idtipo1=11)
· Industria (idtipo1=12)
· Publicaciones (idtipo1=13)
· Servicios (idtipo1=14)
· Turismo experiencial (idtipo1=15)
Los niveles Tipo 2 y Tipo 3 corresponden a las tipologías en forma de subcategorías. Por lo general, todos los contenidos tienen asignadas una clasificación de nivel 1 y de nivel 2. La subcategorización de tercer nivel sólo aparece en algunos tipos de contenido.
Para obtener un listado de la taxonomía completa, cabe realizar la siguiente llamada, pudiendo tambien indicarle el idioma solicitado (es,ca,en):
https://api.valldalbaida.com/opendata/?r=es/taxonomia
https://api.valldalbaida.com/opendata/?r=ca/taxonomia
https://api.valldalbaida.com/opendata/?r=en/taxonomia
Detalle sobre algunos tipos de contenido de Nivel 1:
Es importante remarcar que las definiciones aquí descritas responden a una clasificación
muy particular para adaptarlas a una estructura coherente de datos que pueda diferenciarlas. Por tanto, algunos términos necesitan de una aclaración previa. Estos son:
Cualquier listado de contenidos de tipo Nivel 1, devolverá un listado sencillo con estos campos:
· id: Valor entero. Representa el identificador del contenido.
· titulo: Texto. Es el título del contenido.
· geopos: Coordenadas. Posición del contenido.
· img: Dirección URL de la imagen principal del contenido.
Para obtener todos los municipios de La Vall d'Albaida, basta con realizar la siguiente llamada:
https://api.valldalbaida.com/opendata/?r=es/listar/municipios
Según lo comentado, devuelve un array con: id, titulo, img
Por razones evidentes, salvo los municipios, el resto de contenidos de Tipo 1, se listan filtrando por municipio. La URL de la petición tiene esta forma:
https://api.valldalbaida.com/opendata/?r=es/listar/municipio={id}/tipo1={idtipo1}
Donde {id} corresponde al id del municipio y {idtipo1} es el id del Tipo 1.
Es decir, sabiendo que los id de los Tipo 1 son los descritos en la taxonomía, para el municipio Bocairent (id=15), tendríamos las siguientes llamadas:
· https://api.valldalbaida.com/opendata/?r=es/listar/contenidos&municipio=15&tipo1=2 : Productos locales
· https://api.valldalbaida.com/opendata/?r=es/listar/contenidos&municipio=15&tipo1=3 : Entidades
· https://api.valldalbaida.com/opendata/?r=es/listar/contenidos&municipio=15&tipo1=4 : Alojamientos
· https://api.valldalbaida.com/opendata/?r=es/listar/contenidos&municipio=15&tipo1=5 : Restauración
· https://api.valldalbaida.com/opendata/?r=es/listar/contenidos&municipio=15&tipo1=6 : Locales de ocio
· https://api.valldalbaida.com/opendata/?r=es/listar/contenidos&municipio=15&tipo1=7 : Patrimonio
· https://api.valldalbaida.com/opendata/?r=es/listar/contenidos&municipio=15&tipo1=9 : Actividades
· https://api.valldalbaida.com/opendata/?r=es/listar/contenidos&municipio=15&tipo1=10 : Rutas
· https://api.valldalbaida.com/opendata/?r=es/listar/contenidos&municipio=15&tipo1=11 : Comercios
· https://api.valldalbaida.com/opendata/?r=es/listar/contenidos&municipio=15&tipo1=12 : Industria
· https://api.valldalbaida.com/opendata/?r=es/listar/contenidos&municipio=15&tipo1=13 : Publicaciones
· https://api.valldalbaida.com/opendata/?r=es/listar/contenidos&municipio=15&tipo1=14 : Servicios
· https://api.valldalbaida.com/opendata/?r=es/listar/contenidos&municipio=15&tipo1=15 : Turismo experiencial
También podriamos obtener varios resultados de destinto contenido. Pudiendo pedir varios municipios o varios tipo1
https://api.valldalbaida.com/opendata/?r=es/listar/municipio={id,id,id...}/tipo1={idtipo1,idtipo1,idtipo1...}
Solicitamos que nos muestre los alojamientos de 3 poblaciones
· https://api.valldalbaida.com/opendata/?r=es/listar/contenidos&municipio=15,4,34&tipo1=4 : Alojamientos de los municipios (15, 4 y 34)
Incluso pudiendo indicar todo el contenido:
· https://api.valldalbaida.com/opendata/?r=es/listar/contenidos&municipio=todos&tipo1=4 : Todos los alojamientos de todos los municipios
· https://api.valldalbaida.com/opendata/?r=es/listar/contenidos&municipio=15,4,34&tipo1=todos : Todos c. de los municipios (15, 4 y 34)
· https://api.valldalbaida.com/opendata/?r=es/listar/contenidos&municipio=todos&tipo1=todos : Todos los contenidos de todos los municipios
La paginación se encuentra presente en el listado de los contenidos. Si no se quiere utilizar paginacion solamente se devolveran 500 resultado, demorando un tiempo de entre 250 - 400ms.
Si se desea obtener mas contenidos estamos obligados a paginar el contenido. Para paginarlo hay que agregar los parametros &paginacion, &desde, $hasta
https://api.valldalbaida.com/opendata/?r=es/listar/contenidos&municipio={id}&tipo1=4&paginacion={'rango'}&desde={'numdesde'}&hasta={'numhasta'}
Veamos un ejemplo: Mostrar de restauración, los primeros 100 contenidos del municipio 34 (ontinyent)
https://api.valldalbaida.com/opendata/?r=es/listar/contenidos&municipio=34&tipo1=5&paginacion=rango&desde=0&hasta=100
Para obtener todos los valores solamente hay que repetir lo anterior en un bucle
Para listar las noticias de un contenido el funcionamiento es el mismo que el anterior, pero se recomienda utilizar la paginación para filtra por fecha (fechadesde, fechahasta) o por rango (numdesde, numhasta)
https://api.valldalbaida.com/opendata/?r=es/listar/contenidos&municipio={id}&tipo1=8&paginacion={'rango','fecha'}&desde={'numdesde',fechadesde'}&hasta={'numhasta',fechahasta'}
Donde {fechadesde} corresponde a la fecha de inicio que queramos mostrar (formato: YYY-MM-DD) y {fechahasta} la fecha fin.
https://api.valldalbaida.com/opendata/?r=es/listar/contenidos&municipio=15&tipo1=13&paginacion=fecha&desde=2018-01-01&hasta=2018-12-31
Para listar los eventos se utiliza el siguiente formato de llamada:
https://api.valldalbaida.com/opendata/?r=es/eventos/
&paginacion=('rango' | 'fecha')
&desde=('numero' | 'fecha' )
&hasta=('numero' | 'fecha' )
&poblacion=(idpoblacion | idp1,idp2... | todos)
&subtipo1='numero'
&subtipo2='numero'
Si no se especifica el valor hasta tanto si paginación es igual a fecha o a rango, la consulta estará limitada a 100 resultados.
Parámetros obligatorios:{paginacion},{desde}
Formato de respuesta si ha ido todo bién: {action:'ok', num_response:100, response:[...]}
Formato de respuesta si ha fallado algo: {action:'error', num_response:0, response: 'La consulta a fallado'}
(Ejemplo de consulta)
Consulta para mostrar los 100 eventos a partir de la fecha de hoy (2024-04-26) de la población Ontinyent(34):
https://api.valldalbaida.com/opendata/?r=es/eventos/&paginacion=fecha&desde=2024-04-26&poblacion=34