https://datahub.tourismus-kompetenz.de/docs/api/images/Untitled.png[Extern] API Dokumentation
📄

[Extern] API Dokumentation

Datahub Tegernsee [Stand: 23.05.2023]

Inhaltsverzeichnis

1. Erste Schritte

Um mit der GraphQL Schnittstelle arbeiten zu können benötigen sie:

Diese Informationen erhalten sie von ihrem Ansprechpartner (ATS/TTT).

1.1 GraphiQL Explorer

Für jede individuelle GraphQL Schnittstelle steht eine eigene technische Dokumentation im GraphiQL Explorer zur Verfügung. Dieser kann unter folgendem URL Schema aufgerufen werden.

https://datahub.tourismus-kompetenz.de/pimcore-datahub-webservices/explorer/API-NAME

API-NAME wird durch den übermittelten Namen der GraphQL Schnittstelle ersetzt. Beispiel: https://datahub.tourismus-kompetenz.de/pimcore-datahub-webservices/explorer/tours

1.1.1. GraphQL Dokumentation

Die technische Dokumentation kann mit Klick auf "Docs" sowie dem untergeordneten Root Type eingesehen werden. Diese passt sich den zur Verfügung gestellten Daten an.

1.1.2. Ausführen einer Query im GraphiQL Explorer

In folgenden 4 Schritten ist das Ausführen einer Query im GraphiQL Explorer möglich.

  1. Korrekte Graph QL Schnittstelle ausgewählt? (URL) - prüfen der URL. Siehe Punkt 1.1 GraphiQL Explorer
  1. Korrekter API Key hinterlegt? (URL) - der API Key ist nach Ausführung auch in der URL sichtbar.
  1. Abfrage (siehe Beispiel)
  1. Ausführen ✔️

2. Allgemeine Erklärung

grafische Darstellung Datahub

3. Daten

Angeschlossene Datenquellen (Urspung der Dateneingabe):

Aktualierungs-Zyklen Datentypen

Cronsheet

0 0 * * 0 /bin/bash -c "cd /var/www/html/pimcore && ./bin/console importer:outdooractive tours"
0 1 * * 0 /bin/bash -c "cd /var/www/html/pimcore && ./bin/console importer:outdooractive cleanTours"
10 * * * * /bin/bash -c "cd /var/www/html/pimcore && ./bin/console importer:infoxmax events --modifiedFromDate"
20 * * * * /bin/bash -c "cd /var/www/html/pimcore && ./bin/console importer:infoxmax pois --modifiedFromDate"
30 * * * * /bin/bash -c "cd /var/www/html/pimcore && ./bin/console importer:infoxmax eventLocationPois --modifiedFromDate"
15 1 * * * /bin/bash -c "cd /var/www/html/pimcore && ./bin/console importer:infoxmax cleanEvents"
25 1 * * * /bin/bash -c "cd /var/www/html/pimcore && ./bin/console importer:infoxmax cleanPois"
35 1 * * * /bin/bash -c "cd /var/www/html/pimcore && ./bin/console importer:infoxmax unpublishWrongPois"
45 1 * * * /bin/bash -c "cd /var/www/html/pimcore && ./bin/console importer:infoxmax archiveEvents"
0 2 * * * /bin/bash -c "cd /var/www/html/pimcore && ./bin/console importer:intermaps"
0 3 * * * /bin/bash -c "cd /var/www/html/pimcore && ./bin/console importer:infoxmax poisImx"
40 * * * * /bin/bash -c "cd /var/www/html/pimcore && ./bin/console importer:infoxmax activitiesImx"
0 5 * * * /bin/bash -c "cd /var/www/html/pimcore && ./bin/console importer:ds"
0 6 * * * /bin/bash -c "cd /var/www/html/pimcore && ./bin/console updater:tags"

Tags

Mithilfe von Tags werden die Daten im DataHub bzgl. Kategorie und Region geclustered. Diese Tags können über die GraphQL Schnittstelle wie folgt abgefragt werden:

Bsp - Activities:

{
  getActivityRegionListing(first: 20, after: 0, defaultLanguage: "de", ids: "47810") {
    edges {
      node {
        id
        name
        tags {
          id
          name
          
        }
      }
    }
  }
}

Für weitere Informationen zu den vorhandenen Tags kontaktieren Sie bitte Ihren Ansprechpartner.

Filtering

GraphQL Filtering mehr Infos:

Filter Listings | Pimcore Development Documentation
You can use Pimcore's webservice filter logic
https://pimcore.com/docs/platform/Datahub/GraphQL/Query/Filtering/

3.1 Gesamt-Visualisierung DataHub

Die im Datahub vorhandenen Informationen können mittels GraphQL Voyager unter folgendem Link betrachtet werden. Mittels Klick auf Objekte werden dynamisch die Verbindungen sowie Tabellen-Felder sichtbar.

3.2 Event

3.2.1. Einleitung

Die Objektklasse "Event" beinhaltet EventCategory (ID: eventCategory) und EventCriteria (ID: eventCriteria) und importiert die Daten aus der Schnittstelle IMX alle 60 Minuten (nur geänderte Daten). Verfügbare Daten liegen in Deutscher Sprache vor. Es besteht eine Verknüpfung (Typ: Viele-zu-Eins-Beziehung) zur Objektklasse Poi (location, contributor).

3.2.2. Visualisierung

Die dynamische Visualisierung der Datahub-Daten ist unter folgendem Link erreichbar.

Alle Details zu Events werden mit Klick auf object_Event sichtbar.

3.2.3. Beispiel-Query

Listing von Events inkl. aller Details:

{
  getEventListing(first: 10, after: 0, defaultLanguage: "de") {
    edges {
      node {
        id
        title
        shortDescription
        location {
          ... on object_Poi {
            id
            title
          }
        }
        categories {
          ... on object_EventCategory {
            id
            name
          }
        }
        startDate
        endDate
        startTime
        duration
        weekDays
        weeklyGap
        monthlyMonthGap
        monthlyGap
        monthlyDayOfWeek
        monthlyDayOfMonth
        specificEventDates {
          date
          startTime
          duration
        }
        cancelledEventDates {
          date
        }
        soldOutEventDates {
          date
        }
      }
    }
  }
}

Abfrage von Thumbnails (verfügbar 800x500)

{
2  getEventListing(first: 5) {
3    edges {
4      node {
5        id
6        images {
7          image {
8            id
9            fullpath(thumbnail: "signageEvent")
10          }
11        }
12      }
13    }
14  }
15}

Syntax ist der folgende: statt fullpath -> fullpath(thumbnail: "signageEvent") funktioniert somit auch mit anderen Typen.

Abfrage nach Events - gefiltert nach einer Location (id)

{
  getEventListing(filter: "{\"location__id\": \"20711\"}", first: 10, after: 0, defaultLanguage: "de") {
    edges {
      node {
        id
        title
        shortDescription
        location {
          ... on object_Poi {
            id
            title
          }
        }
        categories {
          ... on object_EventCategory {
            id
            name
          }
        }
        startDate
        endDate
        startTime
        duration
        weekDays
        weeklyGap
        monthlyMonthGap
        monthlyGap
        monthlyDayOfWeek
        monthlyDayOfMonth
        specificEventDates {
          date
          startTime
          duration
        }
        cancelledEventDates {
          date
        }
        soldOutEventDates {
          date
        }
      }
    }
  }
}

3.3 Activity

3.3.1. Einleitung

Die Objektklasse "Activity" beinhaltet ActivityCategory (ID: activityCategory), ActivityRegion (ID: activityRegion) und ActivityTag (ID:activityTag). Importiert werden die Daten aus der Schnittstelle outdooractive einmal wöchentlich (Sonntag, 24:00 Uhr). Verfügbare Daten liegen in Deutscher Sprache vor. Es besteht eine optionale Verknüpfung zu Poi (IMX) falls Schneedaten zur Verfügung stehen (z.B. Loipen, Rodelbahnen) - das Matching wird durch den Eintrag der IMX ID hergestellt.

3.3.2. Visualisierung

Die dynamische Visualisierung der Datahub-Daten ist unter folgendem Link erreichbar.

Alle Details zu Activities werden mit Klick auf object_Activity sichtbar.

3.3.3. Beispiel-Query

Abfrage Listing von Activities inkl. Details und Medien

{
  getActivityListing(first: 10, after: 0, defaultLanguage: "de") {
    edges {
      node {
        id
        title
        shortText
        longText
				kmlFile
				gpxFile
        primary {
          image {
            id
            fullpath
            modificationDate
          }
        }
        gallery {
          image {
            id
            fullpath
            modificationDate
          }
        }
        regions {
          ... on object_ActivityRegion {
            id
            name
          }
        }
        category {
          ... on object_ActivityCategory {
            id
            name
          }
        }
        tags {
          ... on object_ActivityTag {
            id
            name
          }
        }
      }
    }
  }
}

3.4 Poi

3.4.1. Einleitung

Die Objektklasse "Poi" beinhaltet PoiCategory (ID: poiCategory) und importiert die Daten aus der Schnittstelle IMX alle 60 Minuten (nur geänderte Daten). Verfügbare Daten liegen in Deutscher Sprache vor.

3.4.2. Visualisierung

Die dynamische Visualisierung der Datahub-Daten ist unter folgendem Link erreichbar.

Alle Details zu Activities werden mit Klick auf object_Poi sichtbar.

3.4.3. Beispiel-Query

Abfrage POI Listing inkl. Details und Medien

{
  getPoiListing(first: 10, after: 0, defaultLanguage: "de") {
    edges {
      node {
        id
        title
        shortDescription
        longDescription
        classifications
        categories {
          ... on object_PoiCategory {
            id
            name
          }
        }
        contactName
        salutation
        firstname
        lastname
        street
        streetNo
        zipcode
        city
        country
        phone1
        phone2
        fax
        email
        homepage
        geo {
          longitude
          latitude
        }
        images {
          image {
            id
            fullpath
            modificationDate
          }
        }
        seatsIndoor
        seatsOutdoor
        numberRooms
        numberConferenceRooms
        numberPersons
        rooms {
          ... on fieldcollection_PoiRoom {
            name
            rsize
            height
            blockSeating
            roomAttributes
            images {
              image {
                id
                fullpath
                modificationDate
              }
            }
          }
        }
      }
    }
  }
}

3.5 Schneehöhen

3.5.1. Einleitung

Es gibt keine einheitliche Objektklasse für Schneedaten. Schneehöhen stehen bei folgenden Klassen zur Verfügung:

3.5.2. Visualisierung

Demnach erfolgt die Visualisierung der Daten unter den jeweiligen zugeordneten Objektklassen unter folgendem Link mit dem Klick auf object_Activity ,object_ActivityRegion, object_Poi

3.5.3. Beispiel-Query

Schneehöhe Ort

{
  getActivityRegionListing(defaultLanguage: "de") {
    edges {
      node {
        id
        name
        information
        depthOfSnowMountain
        depthOfSnowValley
        freshSnow
        streetCondition
      }
    }
  }
}

3.6 Ski (Poi)

3.6.1. Einleitung

Es gibt keine eigene Objektklasse für Daten zu den Skigebieten,diese werden als untergeordneter Objektbaustein "poiType" zur Objektklasse "Poi" gespeichert. Zudem werden IMX Daten mit Daten aus der Intermaps Schnittstelle angereichert. Die Akualisierung erfolgt hier [in Arbeit].

3.6.2. Visualisierung

Die dynamische Visualisierung der Datahub-Daten ist unter folgendem Link erreichbar.

Alle Details zu Ski (Poi) werden mit Klick auf object_Poi sichtbar.

3.6.3. Beispiel-Query

Abfrage Listung Lifte und Pisten eines Skigebiets inkl. Informationen

{
  getPoiListing(first: 10, after: 0, defaultLanguage: "de", filter: "{\"o_path\": {\"$like\": \"%/Intermaps/%\"}}") {
    edges {
      node {
        id
        title
        status
        slopes {
          ... on object_Activity {
            id
            title
            status
            length
          }
        }
        lifts {
          ... on object_Activity {
            id
            title
            status
          }
        }
      }
    }
  }
}

oder

{
  getActivityListing(first: 10, after: 0, defaultLanguage: "de", filter: "{\"o_path\": {\"$like\": \"%/Slopes/%\"}}") {
    edges {
      node {
        id
        title
        status
      }
    }
  }
}

{
  getActivityListing(first: 10, after: 0, defaultLanguage: "de", filter: "{\"o_path\": {\"$like\": \"%/Lifts/%\"}}") {
    edges {
      node {
        id
        title
        status
      }
    }
  }
}

3.7 Accomodation

3.7.1. Einleitung

Die Objektklasse "Accomodation" beinhaltet folgende Unterkassen

Sowie auch die Zimmer werden hierarchisch unterhalb als Objektklasse"AccommodationRoom" (ID: accommodationRoom) angezeigt und beinhalten folgende Unterklassen:

Daten werden aus Schnittstelle DS-Content API (DS Booking Solution) einmal täglich um 5:00 Uhr importiert. Verfügbare Daten liegen in Deutscher Sprache vor.

3.7.2. Visualisierung

Die dynamische Visualisierung der Datahub-Daten ist unter folgendem Link erreichbar.

Alle Details zu Accomodation werden mit Klick auf object_Accommodation sichtbar.

3.7.3. Beispiel-Query

Listing mit Unterkünften - gleiche Abfrage gilt wie immer für Detail, mit getAccomodation(id: ….) { … }

{
  getAccommodationListing(first: 10, after: 0, defaultLanguage: "de") {
    edges {
      node {
        id
        title
        description
        locationDescription
        categories {
          ... on object_AccommodationCategory {
            id
            name
          }
        }
        stars
        amenities {
          ... on object_AccommodationAmenity {
            id
            name
          }
        }
        availableLanguages
        audiences {
          ... on object_AccommodationAudience {
            id
            name
          }
        }
        homepage
        priceFrom
        yearBuilt
        street
        zipcode
        city
        country
        images {
          image {
            id
            fullpath
            modificationDate
          }
        }
        checkinTimeFrom
        checkinTimeTill
        checkoutTimeFrom
        checkoutTimeTill
        children {
          ... on object_AccommodationRoom {
            id
            name
            categories {
              ... on object_AccommodationRoomCategory {
                id
                name
              }
            }
            occupancyMin
            occupancyMax
            occupancyStd
            amenities {
              ... on object_AccommodationRoomAmenity {
                id
                name
              }
            }
            floorSize
            numberOfBathrooms
            numberOfBedrooms
            images {
              image {
                id
                fullpath
                modificationDate
              }
            }
          }
        }
      }
    }
  }
}

4. Kontakt/Ansprechpartner

4.1. Regionalentwicklung Oberland KU

Christian Greilinger - Datenmanagement und Digitalisierung

Tel: +49 8025 99372 14

christian.greilinger@regionalentwicklung-oberland.de

4.2. Tegernseer Tal Tourismus GmbH

Timm Jelitschek Projektmanager Digitalisierung

Tel: +49 8022 92738 16

t.jelitschek@tegernsee.com