Datos del partido como JSON/JSON-LD

ES

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

Hay dos versiones de la sintaxis:
  • 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 1
https://www.goabase.net/api/party/jsonld/ - JSON-LD según schema.org (Ver. 2)

Los datos

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}

Parámetro Resultado
(ninguno) Todos los próximos eventos, limitados a 500.
country=list-all

Sólo los países y su número de eventos.

país={nameCountry} Fiestas de {nameCountry}.
país={isoCountry} Partes de {isoCountry}.
Iso-Alpha-2 como valor por defecto para los países.
tipo de evento={nameType} Valores para {nameType}:
  • festival - Eventos al aire libre con una duración de 36 horas o más
  • openair - Pequeños festivales
  • indoor - Grandes eventos en interiores
  • club - Fiestas en locales de club
  • indoor_outdoor - Eventos con pistas de baile interiores y exteriores
  • virtual - Fiestas virtuales
Ver también
geoloc={nameTown} Fiestas a 100 km alrededor de {nameTown}. Si utilizas un topónimo, intentaremos encontrarlo en nuestra base de datos de geolocalización y en Openstreetmap.
limit={number} Establece {number} en 50 para obtener sólo 50 eventos.
ll={geoLat,geoLon} Eventos a 100 km en un radio de {geoLat,geoLon}.
PID={id} o
{id}
Abre todos los detalles del evento con {id}
En lugar de api/party/jsonld/ ?PID={id} también puedes utilizar api/party/jsonld/{id}.
radio={radius} Radio en kilómetros para la búsqueda por radio. Valor por defecto: 100
buscar={search} Busca todos los eventos de fiesta con {search} en alineación, nombre del lugar, nombre de la fiesta o información. Puedes utilizar más de un término de búsqueda.
buscarfecha={YYYY-MM-DD} Fiestas que se celebran en {YYYY-MM-DD}.
status={nameStatus} Valores para {nameStatus}:
  • new - Entradas nuevas en los últimos siete días
  • update - Actualizados en los últimos siete días
  • canceled - Eventos cancelados
  • postponed - Nueva fecha, fiesta aplazada (guardamos 1x la fecha antigua)
  • new_loc - Ubicación nueva o modificada
ver=1|2 Versión de la API. ver=1 es nuestra sintaxis, ver=2 JSON-LD

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);
}