-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Wir bieten für die Gewichtsdatenbank auf MTB-News.de und Rennrad-News.de ein HTTP-API an.
Es ist damit möglich, Daten aus der der Gewichtsdatenbank auszulesen und neue Einträge anzulegen.
- GewDB Android-App
- Teileliste Desktopanwendung
Wenn ihr ein Projekt habt, welche die API-Funktionen nutzt: sagt Bescheid, wir verlinken euch hier!
- API-Keys abrufen
- API-Funktionen: Produkte
- API Funktionen: Hersteller
- API Funktionen: Kategorien
- API Funktionen: Suche
- API Funktionen: Benutzer
Die Authentifizierung geschieht über ein Token, welches in den Headerdaten des HTTP-Requests mitgeschickt werden muss.
Der Request-Header für das Token lautet api-token
.
Ohne dieses Token können keine API-Funktionen benutzt werden.
Das Token ist ein 36 Zeichen langer String, welcher einen Benutzer eindeutig identifiziert. Jeder Benutzer kann bis zu fünf Token besitzen und diese jederzeit auch wieder löschen und sie damit ungültig machen.
Das Token ist mit der gleichen Vorsicht wie ein Password zu behandeln.
Die API-Tokens können hier verwaltet werden: http://gewichte.mtb-news.de/api-keys oder http://gewichte.rennrad-news.de/api-keys
Es ist möglich, die Tokens eines Users auch per speziellem API-Request abzurufen. Dazu muss der Client sich mit Benutzername oder E-Mail-Adresse sowie dem Kennwort authentifizieren.
curl-Command-Line-Tool:
curl -H 'api-token: DFHDGFEHGDHFBXCBXSRTHGBDBNBDBQETSSAG' \
https://gewichte.mtb-news.de/api/v1/products/user/257.json?limit=5
PHP-Beispielskript:
<?php
// initialize curl ressource handle
$c = curl_init('https://gewichte.mtb-news.de/api/v1/products/user/257.json?limit=1');
// set API token header
curl_setopt(
$c,
CURLOPT_HTTPHEADER,
array('api-token: DFHDGFEHGDHFBXCBXSRTHGBDBNBDBQETSSAG')
);
// store the response body into a variable instead of directly printing it
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
// execute the request
$result = curl_exec($c);
if (false === $result) {
throw new RuntimeException('ERR_CURL_REQUEST_FAILED');
}
$parsed_result = json_decode($result, true, 512, JSON_THROW_ON_ERROR);
if (null === $parsed_result) {
throw new RuntimeException('ERR_CANNOT_DECODE_RESPONSE');
}
print_r($parsed_result);
Die API liefert die Daten im JSON-Format. POST-Daten an die API werden ebenfalls in JSON erwartet.
Info: Die Gewichtsdatenbank auf rennrad-news.de bietet die selben API-Funktionen. In den URLs muss lediglich mtb-news.de
durch rennrad-news.de
ersetzt werden.
Die API-Funktionen können folgendermaßen angesprochen werden:
https://gewichte.mtb-news.de/api/v1/<TYPE>/<METHOD>.json
https://gewichte.mtb-news.de/api/v1/<TYPE>/<METHOD>/<ARGUMENT>.json
Dabei bedeuten:
-
TYPE
: Datentyp, z. B.entries
für Einträge oderusers
für Benutzer -
METHOD
: Methode, die aufgerufen wird, z. B.add
oderdelete
-
ARGUMENT
: Argument für die Methode, damit wird z. B. eine ID übergeben
Einige API-Funktionen bieten die Möglichkeit, mit weiteren Parameter die Ausgabe noch weiter zu manipulieren. Beispielsweise kann die Anzahl der gelieferten Einträge bei manchen Methoden eingeschränkt werden:
https://gewichte.mtb-news.de/api/v1/<TYPE>/<METHOD>/<ARGUMENT>.json?<PARAM1>=<VALUE1>&<PARAM2>=<VALUE2>
Parameter-Namen und -Werte werden als normale GET-Parameter übergeben.