REST‑API‑Endpunkte
Dokumentation der Booknetic REST-API auf Basis der OpenAPI-Spezifikation: Endpunkte, Parameter sowie Beispiele für JSON-Anfragen und -Antworten.
Dokumentation der Booknetic REST-API auf Basis der OpenAPI-Spezifikation: Endpunkte, Parameter sowie Beispiele für JSON-Anfragen und -Antworten.
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.
| Eigenschaft | Wert |
|---|---|
| Version | 1.0.0 |
| Basis-Pfad | /wp-json/booknetic/v1 |
| Format | JSON (application/json) |
Alle Endpunkte in dieser Anleitung sind relativ zu:
/wp-json/booknetic/v1In einer typischen WordPress-Installation lautet die vollständige Basis-URL:
https://your-domain.com/wp-json/booknetic/v1Anfragen und Antworten verwenden JSON.
| Header | Wert |
|---|---|
| Anfrage-Header | Content-Type: application/json |
| Antwort-Header | Content-Type: application/json |
| Ressource | Beschreibung |
|---|---|
| Appointments | Terminverwaltung |
| Customers | Kundenverwaltung |
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.
Gibt eine Liste von Terminen zurück.
Endpunkt
GET /appointmentsAntwort
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"
}
]Erstellt einen neuen Termin.
Endpunkt
POST /appointmentsRequest 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"
}Gibt einen einzelnen Termin anhand seiner ID zurück.
Endpunkt
GET /appointments/{id}Pfadparameter
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
id | integer | Ja | Termin-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"
}Aktualisiert einen Termin anhand seiner ID.
Endpunkt
PUT /appointments/{id}Pfadparameter
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
id | integer | Ja | Termin-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.
Löscht einen Termin anhand seiner ID.
Endpunkt
DELETE /appointments/{id}Pfadparameter
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
id | integer | Ja | Termin-ID |
Antworten
204 No Content — Termin gelöscht
Aktualisiert den Status eines Termins.
Endpunkt
PUT /appointments/{id}/change-statusPfadparameter
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
id | integer | Ja | Termin-ID |
Request Body
Erforderlich
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
status | string | Ja | Neuer 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.
Gibt die Liste verfügbarer Terminstatus zurück.
Endpunkt
GET /appointments/statusesAntworten
200 OK — Verfügbare Statuswerte
Response Body: Array von Strings
Beispielantwort
["pending", "approved", "canceled"]Gibt eine Liste verfügbarer Termin-Zeitfenster zurück.
Endpunkt
GET /appointments/available-timesAntworten
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.
Die Kunden-Ressource stellt Endpunkte zum Auflisten, Abrufen, Erstellen, Aktualisieren und Löschen von Kundendatensätzen bereit.
Gibt eine Liste von Kunden zurück.
Endpunkt
GET /customersAntworten
200 OK — Kundenliste
Response Body: Array von Customer
Beispielantwort
[
{
"id": 55,
"name": "Jane Doe",
"email": "[email protected]",
"phone": "+1 555 123 4567"
}
]Gibt einen Kunden anhand seiner ID zurück.
Endpunkt
GET /customer/info/{id}Pfadparameter
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
id | integer | Ja | Kunden-ID |
Antworten
200 OK — Kundeninformationen
Response Body: Customer
Beispielantwort
{
"id": 55,
"name": "Jane Doe",
"email": "[email protected]",
"phone": "+1 555 123 4567"
}Erstellt einen neuen Kunden.
Endpunkt
POST /customer/createRequest Body
Erforderlich — CustomerCreate
Beispielanfrage
{
"name": "Jane Doe",
"email": "[email protected]",
"phone": "+1 555 123 4567"
}Antworten
201 Created — Kunde erstellt
Response Body: Customer
Aktualisiert einen bestehenden Kunden.
Endpunkt
POST /customer/editRequest 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.
Löscht einen Kunden anhand seiner ID.
Endpunkt
POST /customer/deleteRequest Body
Erforderlich
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
id | integer | Ja | Kunden-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.
Die folgenden Schemas sind in der bereitgestellten OpenAPI-Spezifikation beschrieben.
| Feld | Typ | Hinweise |
|---|---|---|
id | integer | Termin-ID |
customer_id | integer | Zugehörige Kunden-ID |
service_id | integer | Zugehörige Service-ID |
staff_id | integer | Zugehörige Mitarbeiter-ID |
date | string (date-time) | ISO-8601-Datum/Uhrzeit |
status | string | Terminstatus |
Erforderliche Felder: customer_id, service_id, date
| Feld | Typ | Erforderlich | Hinweise |
|---|---|---|---|
customer_id | integer | Ja | Kunden-ID |
service_id | integer | Ja | Service-ID |
staff_id | integer | Nein | Mitarbeiter-ID |
date | string (date-time) | Ja | ISO-8601-Datum/Uhrzeit |
| Feld | Typ | Erforderlich | Hinweise |
|---|---|---|---|
staff_id | integer | Nein | Mitarbeiter-ID |
date | string (date-time) | Nein | ISO-8601-Datum/Uhrzeit |
status | string | Nein | Terminstatus |
| Feld | Typ | Hinweise |
|---|---|---|
id | integer | Kunden-ID |
name | string | Kundenname |
email | string (email) | Kunden-E-Mail |
phone | string | Kundentelefon |
Erforderliche Felder: name
| Feld | Typ | Erforderlich | Hinweise |
|---|---|---|---|
name | string | Ja | Kundenname |
email | string (email) | Nein | Kunden-E-Mail |
phone | string | Nein | Kundentelefon |
Erforderliche Felder: id
| Feld | Typ | Erforderlich | Hinweise |
|---|---|---|---|
id | integer | Ja | Kunden-ID |
name | string | Nein | Kundenname |
email | string (email) | Nein | Kunden-E-Mail |
phone | string | Nein | Kundentelefon |
Die folgende Tabelle fasst alle in der bereitgestellten Spezifikation definierten Endpunkte zusammen.
| Methode | Endpunkt | Beschreibung |
|---|---|---|
GET | /appointments | Termine abrufen |
POST | /appointments | Termin erstellen |
GET | /appointments/{id} | Termin nach ID abrufen |
PUT | /appointments/{id} | Termin aktualisieren |
DELETE | /appointments/{id} | Termin löschen |
PUT | /appointments/{id}/change-status | Terminstatus ändern |
GET | /appointments/statuses | Terminstatus abrufen |
GET | /appointments/available-times | Verfügbare Terminzeiten abrufen |
| Methode | Endpunkt | Beschreibung |
|---|---|---|
GET | /customers | Kunden abrufen |
GET | /customer/info/{id} | Kundeninformationen abrufen |
POST | /customer/create | Kunden erstellen |
POST | /customer/edit | Kunden bearbeiten |
POST | /customer/delete | Kunden löschen |
Einige Details in der bereitgestellten Spezifikation sind nicht vollständig definiert und sollten in der finalen Produktionsdokumentation genauer erläutert werden.
Für diese Endpunkte sind in der bereitgestellten OpenAPI-Datei keine Antwortschemas definiert:
| Endpunkt | Hinweis |
|---|---|
PUT /appointments/{id} | Die Antwort des aktualisierten Termins ist nicht definiert |
PUT /appointments/{id}/change-status | Das Response-Payload ist nicht definiert |
POST /customer/edit | Die 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.
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.
Der Endpunkt zum Löschen eines Kunden verwendet POST statt DELETE:
POST /customer/deleteWenn dieses Verhalten beabsichtigt ist, reduziert eine Dokumentation des Grundes Verwirrung bei Entwicklern, die mit der API integrieren.
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:
| Ressource | Operationen |
|---|---|
| Appointments | Auflisten, erstellen, abrufen, aktualisieren, löschen, Status ändern, Statuswerte abrufen, verfügbare Zeiten abrufen |
| Customers | Auflisten, abrufen, erstellen, aktualisieren, löschen |