Spring Sale: Get 50% Off All Plans Prices go back up April 1

REST‑API‑Endpunkte

Dokumentation der Booknetic REST-API auf Basis der OpenAPI-Spezifikation: Endpunkte, Parameter sowie Beispiele für JSON-Anfragen und -Antworten.

Version:
Kategorien

Booknetic enthält eine JSON-basierte REST API für die Arbeit mit zentralen Ressourcen wie Terminen und Kunden. Diese Anleitung basiert auf der bereitgestellten OpenAPI-Spezifikation und stellt die verfügbaren Endpunkte in einer klareren und entwicklerfreundlicheren Form dar.

Die API ist für den programmatischen Zugriff auf Booknetic-Daten über standardmäßige HTTP-Anfragen und JSON-Payloads vorgesehen.

API-Übersicht

EigenschaftWert
Version1.0.0
Basis-Pfad/wp-json/booknetic/v1
FormatJSON (application/json)

Basis-URL

Alle Endpunkte in dieser Anleitung sind relativ zu:

/wp-json/booknetic/v1

In einer typischen WordPress-Installation lautet die vollständige Basis-URL:

https://your-domain.com/wp-json/booknetic/v1

Content-Type

Anfragen und Antworten verwenden JSON.

HeaderWert
Anfrage-HeaderContent-Type: application/json
Antwort-HeaderContent-Type: application/json

Verfügbare Ressourcen

RessourceBeschreibung
AppointmentsTerminverwaltung
CustomersKundenverwaltung

Appointments

Die Termin-Ressource stellt Endpunkte zum Auflisten, Erstellen, Abrufen, Aktualisieren, Löschen und Ändern von Termindatensätzen bereit sowie zum Abrufen verfügbarer Statuswerte und Zeitfenster.

Get Appointments

Gibt eine Liste von Terminen zurück.

Endpunkt

GET /appointments

Antwort

200 OK — Liste der Termine

Response Body: Array von Appointment

Beispielantwort

[
  {
    "id": 101,
    "customer_id": 55,
    "service_id": 9,
    "staff_id": 3,
    "date": "2026-01-10T14:30:00Z",
    "status": "approved"
  }
]

Create Appointment

Erstellt einen neuen Termin.

Endpunkt

POST /appointments

Request Body

Erforderlich — AppointmentCreate

Beispielanfrage

{
  "customer_id": 55,
  "service_id": 9,
  "staff_id": 3,
  "date": "2026-01-10T14:30:00Z"
}

Antworten

201 Created — Termin erstellt

Response Body: Appointment

Beispielantwort

{
  "id": 102,
  "customer_id": 55,
  "service_id": 9,
  "staff_id": 3,
  "date": "2026-01-10T14:30:00Z",
  "status": "pending"
}

Get Appointment by ID

Gibt einen einzelnen Termin anhand seiner ID zurück.

Endpunkt

GET /appointments/{id}

Pfadparameter

NameTypErforderlichBeschreibung
idintegerJaTermin-ID

Antworten

200 OK — Termin

Response Body: Appointment

Beispielantwort

{
  "id": 102,
  "customer_id": 55,
  "service_id": 9,
  "staff_id": 3,
  "date": "2026-01-10T14:30:00Z",
  "status": "pending"
}

Update Appointment

Aktualisiert einen Termin anhand seiner ID.

Endpunkt

PUT /appointments/{id}

Pfadparameter

NameTypErforderlichBeschreibung
idintegerJaTermin-ID

Request Body

Erforderlich — AppointmentUpdate

Beispielanfrage

{
  "staff_id": 4,
  "date": "2026-01-10T15:00:00Z",
  "status": "approved"
}

Antworten

200 OK — Termin aktualisiert

Die bereitgestellte OpenAPI-Spezifikation definiert kein Antwortschema für diesen Endpunkt. In der Praxis würde die Rückgabe des aktualisierten Appointment-Objekts den Endpunkt vorhersehbarer und einfacher nutzbar machen.

Delete Appointment

Löscht einen Termin anhand seiner ID.

Endpunkt

DELETE /appointments/{id}

Pfadparameter

NameTypErforderlichBeschreibung
idintegerJaTermin-ID

Antworten

204 No Content — Termin gelöscht

Change Appointment Status

Aktualisiert den Status eines Termins.

Endpunkt

PUT /appointments/{id}/change-status

Pfadparameter

FeldTypErforderlichBeschreibung
idintegerJaTermin-ID

Request Body

Erforderlich

FeldTypErforderlichBeschreibung
statusstringJaNeuer Statuswert

Beispielanfrage

{
  "status": "approved"
}

Antworten

200 OK — Status aktualisiert

Die bereitgestellte OpenAPI-Spezifikation definiert kein Antwortschema für diesen Endpunkt. Eine konsistente Implementierung kann entweder das aktualisierte Appointment-Objekt oder ein standardisiertes Erfolgs-Payload zurückgeben.

Get Appointment Statuses

Gibt die Liste verfügbarer Terminstatus zurück.

Endpunkt

GET /appointments/statuses

Antworten

200 OK — Verfügbare Statuswerte

Response Body: Array von Strings

Beispielantwort

["pending", "approved", "canceled"]

Get Available Appointment Times

Gibt eine Liste verfügbarer Termin-Zeitfenster zurück.

Endpunkt

GET /appointments/available-times

Antworten

200 OK — Verfügbare Zeiten

Response Body: Array von Strings

Beispielantwort

[
  "2026-01-10 14:30",
  "2026-01-10 15:00",
  "2026-01-10 15:30"
]

Die OpenAPI-Spezifikation definiert das Beispiel als einfachen String wie "2026-01-10 14:30". Wenn die tatsächliche Implementierung ISO-8601-Werte oder zeitzonenbezogene Werte erwartet, sollte dies ausdrücklich dokumentiert werden.

Customers

Die Kunden-Ressource stellt Endpunkte zum Auflisten, Abrufen, Erstellen, Aktualisieren und Löschen von Kundendatensätzen bereit.

Get Customers

Gibt eine Liste von Kunden zurück.

Endpunkt

GET /customers

Antworten

200 OK — Kundenliste

Response Body: Array von Customer

Beispielantwort

[
  {
    "id": 55,
    "name": "Jane Doe",
    "email": "[email protected]",
    "phone": "+1 555 123 4567"
  }
]

Get Customer Info

Gibt einen Kunden anhand seiner ID zurück.

Endpunkt

GET /customer/info/{id}

Pfadparameter

FeldTypErforderlichBeschreibung
idintegerJaKunden-ID

Antworten

200 OK — Kundeninformationen

Response Body: Customer

Beispielantwort

{
  "id": 55,
  "name": "Jane Doe",
  "email": "[email protected]",
  "phone": "+1 555 123 4567"
}

Create Customer

Erstellt einen neuen Kunden.

Endpunkt

POST /customer/create

Request Body

Erforderlich — CustomerCreate

Beispielanfrage

{
  "name": "Jane Doe",
  "email": "[email protected]",
  "phone": "+1 555 123 4567"
}

Antworten

201 Created — Kunde erstellt

Response Body: Customer

Edit Customer

Aktualisiert einen bestehenden Kunden.

Endpunkt

POST /customer/edit

Request Body

Erforderlich — CustomerUpdate

Beispielanfrage

{
  "id": 55,
  "name": "Jane A. Doe",
  "email": "[email protected]",
  "phone": "+1 555 123 4567"
}

Antworten

200 OK — Kunde aktualisiert

Die bereitgestellte OpenAPI-Spezifikation definiert kein Antwortschema für diesen Endpunkt. Die Rückgabe des aktualisierten Customer-Objekts würde die Konsistenz verbessern.

Delete Customer

Löscht einen Kunden anhand seiner ID.

Endpunkt

POST /customer/delete

Request Body

Erforderlich

FeldTypErforderlichBeschreibung
idintegerJaKunden-ID

Beispielanfrage

{
  "id": 55
}

Antworten

200 OK — Kunde gelöscht

Dieser Endpunkt verwendet POST statt DELETE. Wenn dies aufgrund WordPress-spezifischer Implementierungsmuster, Berechtigungen oder Nonce-Handling beabsichtigt ist, sollte der Grund für API-Nutzer klar dokumentiert werden.

Schemas

Die folgenden Schemas sind in der bereitgestellten OpenAPI-Spezifikation beschrieben.

Appointment

FeldTypHinweise
idintegerTermin-ID
customer_idintegerZugehörige Kunden-ID
service_idintegerZugehörige Service-ID
staff_idintegerZugehörige Mitarbeiter-ID
datestring (date-time)ISO-8601-Datum/Uhrzeit
statusstringTerminstatus

AppointmentCreate

Erforderliche Felder: customer_id, service_id, date

FeldTypErforderlichHinweise
customer_idintegerJaKunden-ID
service_idintegerJaService-ID
staff_idintegerNeinMitarbeiter-ID
datestring (date-time)JaISO-8601-Datum/Uhrzeit

AppointmentUpdate

FeldTypErforderlichHinweise
staff_idintegerNeinMitarbeiter-ID
datestring (date-time)NeinISO-8601-Datum/Uhrzeit
statusstringNeinTerminstatus

Customer

FeldTypHinweise
idintegerKunden-ID
namestringKundenname
emailstring (email)Kunden-E-Mail
phonestringKundentelefon

CustomerCreate

Erforderliche Felder: name

FeldTypErforderlichHinweise
namestringJaKundenname
emailstring (email)NeinKunden-E-Mail
phonestringNeinKundentelefon

CustomerUpdate

Erforderliche Felder: id

FeldTypErforderlichHinweise
idintegerJaKunden-ID
namestringNeinKundenname
emailstring (email)NeinKunden-E-Mail
phonestringNeinKundentelefon

Endpunkt-Zusammenfassung

Die folgende Tabelle fasst alle in der bereitgestellten Spezifikation definierten Endpunkte zusammen.

Appointment-Endpunkte

MethodeEndpunktBeschreibung
GET/appointmentsTermine abrufen
POST/appointmentsTermin erstellen
GET/appointments/{id}Termin nach ID abrufen
PUT/appointments/{id}Termin aktualisieren
DELETE/appointments/{id}Termin löschen
PUT/appointments/{id}/change-statusTerminstatus ändern
GET/appointments/statusesTerminstatus abrufen
GET/appointments/available-timesVerfügbare Terminzeiten abrufen

Customer-Endpunkte

MethodeEndpunktBeschreibung
GET/customersKunden abrufen
GET/customer/info/{id}Kundeninformationen abrufen
POST/customer/createKunden erstellen
POST/customer/editKunden bearbeiten
POST/customer/deleteKunden löschen

Hinweise für Implementierer

Einige Details in der bereitgestellten Spezifikation sind nicht vollständig definiert und sollten in der finalen Produktionsdokumentation genauer erläutert werden.

Fehlende Antwortschemas

Für diese Endpunkte sind in der bereitgestellten OpenAPI-Datei keine Antwortschemas definiert:

EndpunktHinweis
PUT /appointments/{id}Die Antwort des aktualisierten Termins ist nicht definiert
PUT /appointments/{id}/change-statusDas Response-Payload ist nicht definiert
POST /customer/editDie Antwort des aktualisierten Kunden ist nicht definiert

Die Rückgabe des aktualisierten Ressourcenobjekts für diese Endpunkte würde die API einfacher nutzbar und konsistenter machen.

Konsistenz des Zeitformats

Das Feld date ist als string (date-time) dokumentiert, und die Beispiel-Request- und Response-Payloads verwenden ISO-8601-Werte wie:

"2026-01-10T14:30:00Z"

Gleichzeitig gibt der Endpunkt für verfügbare Zeiten Strings im Format zurück wie:

"2026-01-10 14:30"

Wenn die Implementierung von einer bestimmten Zeitzone, lokaler Serverzeit oder strikt von ISO 8601 abhängt, sollte diese Erwartung ausdrücklich dokumentiert werden.

Konsistenz der HTTP-Methoden

Der Endpunkt zum Löschen eines Kunden verwendet POST statt DELETE:

POST /customer/delete

Wenn dieses Verhalten beabsichtigt ist, reduziert eine Dokumentation des Grundes Verwirrung bei Entwicklern, die mit der API integrieren.

Zusammenfassung

Die REST API von Booknetic stellt eine JSON-basierte Schnittstelle zur Verwaltung von Terminen und Kunden unter dem Namespace /wp-json/booknetic/v1 bereit.

Die aktuelle Spezifikation unterstützt:

RessourceOperationen
AppointmentsAuflisten, erstellen, abrufen, aktualisieren, löschen, Status ändern, Statuswerte abrufen, verfügbare Zeiten abrufen
CustomersAuflisten, abrufen, erstellen, aktualisieren, löschen