Sachsenbowler API

Version 1

Aufbau

Die Sachsenbowler API arbeitet momentan mit zwei öffentlichen Endpoints, content für Berichte und event für Termine. Diese Endpoints werden separat voneinander über die URL aufgerufen.

Die Authentifikation geschieht über einen API Key der bei unserem Systemadministrator beantragt werden muss.
Der API Key muss im HTTPHEADER über X-API-KEY bei jeder Anfrage an die API gesendet werden. Die Daten werden über POST gesendet, die Antwort ist ein JSON.

In der Antwort JSON gibt es immer zwei Objekte, Error und das Endpoint Daten Objekt (hier als CONTENT dargestellt).

Die Antwort JSON

{
    "ERROR": {
        "ERROR_NOTE": "No errors!"
    },
    "CONTENT": {
        "ID": {}
    }
}

Endpoint content (Berichte)

Example Abfrage (PHP - cURL)

<?php
    $curl = curl_init();

    curl_setopt_array($curl, array(
        CURLOPT_URL => 'https://api.sachsenbowler.de/v1/content',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'POST',
        CURLOPT_POSTFIELDS => 'LIMIT=3&FILTER_CATEGORY=Liga',
        CURLOPT_HTTPHEADER => array(
            'X-API-KEY: xxxxx-xxx-xxxxx-xxxxxx-xxxxx',
            'Content-Type: application/x-www-form-urlencoded'
        ),
    ));
    
    $response = curl_exec($curl);
    
    curl_close($curl);
    echo $response;
?>

Example Antwort JSON

{
    "ERROR": {
        "ERROR_NOTE": "No errors!"
    },
    "CONTENT": {
        "10": {
            "CONTENT_ID": "10",
            "TITLE": "Klubmeisterschaft 2020/2021 abgesagt!",
            "FIXED_SIDE_NAME": "",
            "CATEGORY": "Liga",
            "CATEGORY_ID": "2",
            "DATE_CREATE": "2021-01-11 12:37:00",
            "DATE_PUBLIC": "2021-01-11 18:30:00",
            "DATE_MODIFICATION": "2021-03-12 14:36:32",
            "AUTHOR": "",
            "AUTHOR_CO": "Rainer Schuricht",
            "HEADER_IMG": "",
            "GALLERY_IMG": "",
            "CONTENT_BODY": "Body Text",
            "CONTENT_STATUS": "0",
            "CONTENT_COUNT_LIKE": "9"
        },
        "27": {
            "CONTENT_ID": "27",
            "TITLE": "Saisonplanung 2020/2021",
            "FIXED_SIDE_NAME": "",
            "CATEGORY": "Liga",
            "CATEGORY_ID": "2",
            "DATE_CREATE": "2021-02-04 16:53:59",
            "DATE_PUBLIC": "2020-07-19 00:15:00",
            "DATE_MODIFICATION": "2021-03-12 14:37:09",
            "AUTHOR": "",
            "AUTHOR_CO": "Rainer Schuricht",
            "HEADER_IMG": "",
            "GALLERY_IMG": "",
            "CONTENT_BODY": "Body Text",
            "CONTENT_STATUS": "0",
            "CONTENT_COUNT_LIKE": "2"
        },
        "26": {
            "CONTENT_ID": "26",
            "TITLE": "Wertung der Saison 2019/2020",
            "FIXED_SIDE_NAME": "",
            "CATEGORY": "Liga",
            "CATEGORY_ID": "2",
            "DATE_CREATE": "2021-02-04 16:52:39",
            "DATE_PUBLIC": "2020-07-19 00:00:00",
            "DATE_MODIFICATION": "2021-03-12 14:37:08",
            "AUTHOR": "",
            "AUTHOR_CO": "Rainer Schuricht",
            "HEADER_IMG": "",
            "GALLERY_IMG": "",
            "CONTENT_BODY": "Body Text",
            "CONTENT_STATUS": "0",
            "CONTENT_COUNT_LIKE": "2"
        }
    }
}

Endpoint event (Termine)

  • Die Abfrage

    • URL
      • https://api.sachsenbowler.de/v1/event
    • Authentifikation
      • X-API-KEY im HTTPHEADER
  • Filtermöglichkeiten

    • LIMIT
      • Abfrage limitieren
      • Beispiel: LIMIT=3
    • FILTER_CATEGORY
      • Nur eine bestimmte Kategorie
      • Beispiel: FILTER_CATEGORY=Liga
    • EVENT_CURRENT
      • Nur Inhalte die noch nicht abgelaufen sind
      • Beispiel: EVENT_CURRENT=1
    • EVENT_STATUS
      • Nur Inhalte mit bestimmten Status
      • Beispiel: EVENT_STATUS=1

Example Abfrage (PHP - cURL)

<?php
    $curl = curl_init();

    curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://api.sachsenbowler.de/v1/event',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => 'LIMIT=5&EVENT_CURRENT=1',
    CURLOPT_HTTPHEADER => array(
        'X-API-KEY: xxxxx-xxx-xxxxx-xxxxxx-xxxxx',
        'Content-Type: application/x-www-form-urlencoded'
    ),
    ));

    $response = curl_exec($curl);

    curl_close($curl);
    echo $response;
?>

Example Antwort JSON

{
    "ERROR": {
        "ERROR_NOTE": "No errors!"
    },
    "CONTENT": {
        "4": {
            "EVENT_ID": "4",
            "TITLE": "Deutsche Meisterschaft der Ländermannschaften",
            "CATEGORY": "Pokal",
            "CATEGORY_ID": "14",
            "DATE_BEGIN": "2021-08-14 10:00:00",
            "DATE_END": "2021-08-15 18:00:00",
            "DATE_MODIFICATION": "2021-02-05 12:24:36",
            "EVENT_BODY": "",
            "EVENT_LOCATION_ADDRESS": "Pasadenaallee 15, 67059 Ludwigshafen am Rhein",
            "EVENT_STATUS": "0",
            "EVENT_LOCATION": "Felix Bowling Ludwigshafen"
        }
    }
}