Datos de eventos en formato JSON
Puedes obtener toda la información pública de eventos de goabase.net en formato JSON para su uso.
De momento no utilizamos una clave API y no necesitas registrarte para utilizar la API.
Si buscas una forma muy sencilla de incrustar eventos de fiestas, consulta Partyserver.
Si quieres publicar o reutilizar los datos, por favor, no elimines el enlace a goabase.net. Muchas gracias
Y si tienes alguna pregunta, ponte en contacto con nosotros: Contacta con
Sintaxis/Versiones
- Nuestra propia sintaxis "plana" o
- JSON-LD según schema.org.
Puedes seleccionar la versión en función de la URL:
https://www.goabase.net/api/party/json/
- Nuestra sintaxis, versión 1https://www.goabase.net/api/party/jsonld/
- JSON-LD según schema.org (Ver. 2)Los datos
- Lista de partidos
[https://www.goabase.net/api/party/json/?limit=10]
(máx. 10)
[https://www.goabase.net/api/party/jsonld/?limit=10]
(máx. 10)
Los enlaces te llevarán a una lista claramente organizada de los 10 próximos actos. Están ordenados por fecha de inicio, nombre del partido y país. También puedes utilizar parámetros GET para limitar la lista. Con ?limit=50 sólo se mostrarán 50. - Todos los países
[https://www.goabase.net/api/party/json/?country=list-all]
[https://www.goabase.net/api/party/jsonld/?country=list-all]
Esto te dará una lista de todos los países y el número de sus eventos. - Fiesta
https://www.goabase.net/api/party/json/{id}
https://www.goabase.net/api/party/jsonld/{id}
Si añades el ID, obtendrás todos los detalles de la fiesta.
Parámetros GET para la lista de fiestas
https://www.goabase.net/api/party/json/?{parameter}={value}
https://www.goabase.net/api/party/jsonld/?{parameter}={value}
Notas generales sobre nuestra sintaxis (ver. 1)
Hacemos nuestro objeto JSON lo más "plano" posible.
Los nombres de las claves se inspiran en schema.org y se escriben en "camelCase", donde la primera parte describe el tipo de datos y la segunda los datos. Esto debería explicarse por sí mismo.
Utilizamos "nameType" de forma distinta a schema.org, ya que sólo difieren entre"Festival" y"DanceEvent". Nosotros utilizamos más específicamente (para nuestro género) los tipos "Festival", "Al aire libre" (como schema.org/Festival) e "Interior", "Club", "Interior y exterior" (similar a schema.org/DanceEvent).
El contenido de "urlOrganizador" podría ser un texto con saltos de línea como \n o \n\r.
Formatos de hora y zonas horarias
Guardamos todos los eventos con la zona horaria Europa/Berlín y los devolvemos en ISO 8601 con la diferencia respecto a UTC. La fecha y hora 16 de mayo de 2015, 22:00h en Berlín se devuelve como 2015-05-16T22:00:00+02:00
y la misma fecha y hora en Asia/Calcuta se devuelve como 2015-06-16T22:00:00+05:30
.
Pero estas horas UTC no se pueden utilizar, ya que el método Date.toJson las espera. Se requiere la especificación adicional de una zona horaria para obtener la hora local.
Por tanto, a continuación encontrarás un pequeño fragmento de Javascript para leer la fecha.
Cuando se introduce un evento en goabase, se determina y guarda la zona horaria. La mayoría de los países tienen una sola zona horaria, por lo que es fácil comprobarlo.
Para los países con varias zonas horarias (por ejemplo, EE.UU., Brasil, Rusia) utilizamos la geolocalización para determinar la zona horaria. Esto puede fallar porque no se dan valores de lat-lon, o no se encuentran en los 4,4 millones de registros que tomamos como base. En este caso, utilizamos la zona horaria por defecto.
¿Por qué todo esto? Si una fiesta empieza a las 12:00 en Goa, por ejemplo, la hora alemana almacenada 2014-06-14T12:00:00+02:00
aparecería en Goa como el inicio de la fiesta a las 15:30. Sin embargo, en su lugar debe utilizarse la hora de Asia / Calcuta 2014-06-14-14T12:00:00:30:00+05:30
. En cualquier caso, es la hora local más la desviación de la hora UTC.
Javascript
Ejemplo de función Javascript para analizar datos ISO8601 con jQuery
// Esta función ha sido extraída de // timeago.js (http://timeago.yarp.com/) y requiere jQuery(http://jquery.com/) function parseIso8601(iso8601) { var s = $.trim(iso8601); s = s.replace(/-/,"/").replace(/-/,"/"); s = s.replace(/T/," ").replace(/Z/," UTC"); s = s.replace(/([\+-]\d\d)\:?(\d\d)/," $1$2"); // -04:00 -> -0400 devuelve nueva Fecha(s); }