Nutzung der öffentlichen REST API
21.10.2019
Zur Integration mit anderen Programmen und Diensten im Internet bietet Bookacamp eine moderne REST API, um
Daten zu den Reisen abzurufen, Buchungen zu übermitteln und seit neusten auch um die Kapazitäten der
Durchgänge automatisch zu aktualisieren. Dieses Feature ist insbesondere für Reisevermittler interessant.
Alle API-Abrufe werden aus Sicherheitsgründen durchgehend gespeichert und authentifiziert. Nachfolgend ein
Beispiel für den Ablauf der Aktualisierung der Kapazität eines Durchgangs.
Um die API nutzen zu können, wende dich gern an info@bookacamp.de.
Du benötigst einen API-Nutzer und den Secure Key des Veranstalters, welches du beides erst nach Prüfung
durch Bookacamp und Freigabe des Veranstalters erhältst. Einige Informationen des API-Aufrufs werden an
dieser Stelle zur Vereinfachung weggelassen.
- skey: Secure Key zur Identifikation des Veranstalters
- api-user & api-pass Zugangsdaten zur API
- session-id Eindeutige ID des Durchgangs
1. Informationen über den Durchgang abrufen.
curl ....
-d "skey=<skey>"
-d "id=<session-id>"
<api-url>/session/get/<skey>/<session-id>
Teile der Rückgabe enthalten die notwendigen Informationen zur Kapazität:
{ "@api-version": "1.4.0", "@api-end-of-life": "2020-10-21", "success": true, "data": { "id": <session-id>,
"available": { "male": 0, "female": 0, "unisex": 10, "total": 10 }, "options": {
"accommodation": [ { "id": <accommodation-id>, "description": "Bezeichnung der
Unterbringung mit Aufpreis, 0,00 €", "available": { "male": 11, "female": 11, "divers": 22 }
} ] } }, "errors": { "fields": [], "messages": [] } }
Nun habe ich sowohl die Information, wie viele freie Plätze pro Geschlecht noch buchbar sind (im Feld available
)
und die Information, auf welche Unterbringungen die freien Plätze verteilt werden können. (im Feld accommodations
).
Während der Buchung ist es möglich das dritte Geschlecht divers zu wählen, das hier bei der
Verfügbarkeit nicht auftaucht, da nach der Buchung entschieden werden muss, in welche Gruppe der Teilnehmer
/ die Teilnehmerin sich am wohlsten fühlt. Für Daycamps kann eine Buchung Geschlechter-unabhängig durch unisex
durchgeführt werden.
2. Informationen über den Durchgang aktualisieren.
Habe ich diese Informationen zusammen, kann ich mithilfe der API die Verfügbarkeiten automatisch anpassen.
Zusätzlich gibt es Felder um den Aufpreis pro Unterbringung und den Umsatzsteuersatz für die spätere
Umsatzsteuerberechnung für die Unterbringungsleistung anzugeben. In der Regel sind das 7%. Wichtig an dieser
Stelle ist die <accommodation-id>
, die aus dem vorherigen Datenabruf stammt.
curl ...
-d "skey=<skey>"
-d "id=<session-id>"
-d "accommodation[id]=<accommodation-id>"
-d "accommodation[unisex]=0"
-d "accommodation[male]=10"
-d "accommodation[female]=10"
-d "accommodation[price]=1.00"
-d "accommodation[vat]=7"
<api-url>/session/accommodation/update/<skey>/<session-id>
Dieser Blogeintrag richtig sich natürlich eher an technische Integratoren der API und veranschaulicht die
Leichtigkeit der Datenaktualisierung. Im ersten Schritt werden Daten abgerufen und entsprechende eindeutige
IDs zu erhalten und im zweiten Schritt werden anhand der IDs die Daten aktualisiert.
Autor: Mathias Methner