Event-Daten im JSON-Format
Du kannst alle öffentlichen Event-Infos von goabase.net im JSON-Format für deinen Gebrauch bekommen.
Wir benutzen im Moment keinen API-Schlüssel und du musst dich nicht registrieren, um die API zu nutzen.
Wenn du nach einer sehr einfachen Möglichkeit suchst, Party-Events einzubetten, schau dir einmal Partyserver einrichten an.
Falls du die Daten veröffentlichen oder weiterverwenden möchtest, entferne bitte nicht den Backlink zu goabase.net. Vielen Dank!
Und wenn du Fragen hast, melde dich einfach bei uns: Kontakt
Syntax/Versionen
- Unsere eigene "flache" Syntax oder
- JSON-LD nach schema.org.
Du kannst die Version je nach URL auswählen:
https://www.goabase.net/api/party/json/
- Unsere Syntax, Version 1https://www.goabase.net/api/party/jsonld/
- JSON-LD nach schema.org (Ver. 2)Die Daten
- Partyliste
[https://www.goabase.net/api/party/json/?limit=10
] (max 10)
[https://www.goabase.net/api/party/jsonld/?limit=10
] (max 10)
Die Links führen euch zu einer übersichtlichen Liste mit den kommenden 10 Events. Sie sind nach Startdatum, Name der Party und Land geordnet. Du kannst auch GET-Parameter verwenden, um die Liste zu begrenzen. Mit ?limit=50 werden nur 50 ausgegeben.
- Alle Länder
[https://www.goabase.net/api/party/json/?country=list-all
]
[https://www.goabase.net/api/party/jsonld/?country=list-all
]
So bekommst du eine Liste aller Länder und die Anzahl ihrer Veranstaltungen..
- Party
https://www.goabase.net/api/party/json/{id}
https://www.goabase.net/api/party/jsonld/{id}
Wenn du die ID hinzufügst, bekommst du alle Details der Party.
GET Parameter für die Partyliste
https://www.goabase.net/api/party/json/?{parameter}={value}
https://www.goabase.net/api/party/jsonld/?{parameter}={value}
Allgemeine Hinweise zu unserer Syntax (Ver. 1)
Wir machen unser JSON-Objekt so "flach" wie möglich.
Die Schlüsselnamen sind von schema.org inspiriert und in „camelCase“ geschrieben, wobei der erste Teil den Datentyp und der zweite Teil die Daten beschreibt. Das sollte selbsterklärend sein.
Wir verwenden „nameType“ auf eine andere Weise als schema.org, da sie sich nur zwischen "Festival" und "DanceEvent" unterscheiden. Wir verwenden spezifischer (für unser Genre) die Typen „Festival“, „Open Air“ (wie schema.org/Festival) und „Indoor“, ‚Club‘, „In- und Outdoor“ (ähnlich wie schema.org/DanceEvent).
Der Inhalt von „urlOrganizer“ könnte ein Text mit Zeilenumbrüchen wie \n oder \n\r sein.
Zeitformate und Zeitzonen
Wir speichern alle Veranstaltungen mit der Zeitzone Europa/Berlin und geben sie in ISO 8601 mit der Differenz zu UTC zurück. Das Datum und die Uhrzeit 16. Mai 2015, 22:00h in Berlin wird als 2015-05-16T22:00:00+02:00
zurückgegeben und das gleiche Datum und die gleiche Uhrzeit in Asien/Kalkutta als 2015-06-16T22:00:00+05:30
.
Aber diese UTC-Zeiten können nicht verwendet werden, wie die Methode Date.toJson sie erwartet. Es wird die zusätzliche Angabe einer Zeitzone benötigt, um die lokale Zeit zu erhalten.
Nachfolgend findest du daher ein kleines Javascript-Snippet zum Auslesen des Datums.
Wenn ein Event auf goabase eingegeben wird, wird die Zeitzone ermittelt und gespeichert. Die meisten Länder liegen in nur einer Zeitzone, so dass dies leicht zu überprüfen ist.
Bei Ländern mit mehreren Zeitzonen (z. B. USA, Brasilien, Russland) verwenden wir die Geolocation, um die Zeitzone zu bestimmen. Dies kann fehlschlagen, weil keine Lat-Lon-Werte angegeben sind, oder sie werden in den 4,4 Millionen Datensätzen, die wir als Grundlage nehmen, nicht gefunden. In diesem Fall setzen wir die Standardzeitzone ein.
Warum das Ganze? Beginnt eine Party z.B. um 12:00 Uhr in Goa, würde die gespeicherte deutsche Zeit 2014-06-14T12:00:00+02:00
in Goa als Beginn der Party um 15:30 Uhr erscheinen. Stattdessen muss aber die Zeit für Asien / Kalkutta 2014-06-14T12:00:30:00+05:30
verwendet werden. In jedem Fall ist es also die Ortszeit plus Abweichung von der UTC-Zeit.
Javascript
Beispiel für eine Javascript-Funktion zum Parsen von ISO8601-Daten mit jQuery
// This function was ripped from // timeago.js (http://timeago.yarp.com/) and requires 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 return new Date(s); }