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

Endpoints de la REST API

Documentación de la API REST de Booknetic basada en la especificación OpenAPI: endpoints, parámetros y ejemplos de solicitudes y respuestas en JSON.

Versión:
Categorías

Booknetic incluye una REST API basada en JSON para trabajar con recursos principales como citas y clientes. Esta guía está basada en la especificación OpenAPI proporcionada y presenta los endpoints disponibles en un formato más claro y amigable para desarrolladores.

La API está pensada para el acceso programático a los datos de Booknetic mediante solicitudes HTTP estándar y cargas útiles JSON.

Resumen de la API

PropiedadValor
Versión1.0.0
Ruta base/wp-json/booknetic/v1
FormatoJSON (application/json)

URL base

Todos los endpoints de esta guía son relativos a:

/wp-json/booknetic/v1

En una instalación típica de WordPress, la URL base completa es:

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

Tipo de contenido

Las solicitudes y respuestas usan JSON.

EncabezadoValor
Encabezado de solicitudContent-Type: application/json
Encabezado de respuestaContent-Type: application/json

Recursos disponibles

RecursoDescripción
AppointmentsGestión de citas
CustomersGestión de clientes

Appointments

El recurso de citas proporciona endpoints para listar, crear, recuperar, actualizar, eliminar y cambiar registros de citas, así como para obtener estados disponibles y franjas horarias disponibles.

Get Appointments

Devuelve una lista de citas.

Endpoint

GET /appointments

Respuesta

200 OK — Lista de citas

Cuerpo de respuesta: array de Appointment

Ejemplo de respuesta

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

Create Appointment

Crea una nueva cita.

Endpoint

POST /appointments

Cuerpo de la solicitud

Obligatorio — AppointmentCreate

Ejemplo de solicitud

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

Respuestas

201 Created — Cita creada

Cuerpo de respuesta: Appointment

Ejemplo de respuesta

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

Get Appointment by ID

Devuelve una sola cita por su ID.

Endpoint

GET /appointments/{id}

Parámetros de ruta

NombreTipoObligatorioDescripción
idintegerID de la cita

Respuestas

200 OK — Cita

Cuerpo de respuesta: Appointment

Ejemplo de respuesta

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

Update Appointment

Actualiza una cita por su ID.

Endpoint

PUT /appointments/{id}

Parámetros de ruta

NombreTipoObligatorioDescripción
idintegerID de la cita

Cuerpo de la solicitud

Obligatorio — AppointmentUpdate

Ejemplo de solicitud

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

Respuestas

200 OK — Cita actualizada

La especificación OpenAPI proporcionada no define un esquema de respuesta para este endpoint. En la práctica, devolver el objeto Appointment actualizado haría que el endpoint fuera más predecible y más fácil de consumir.

Delete Appointment

Elimina una cita por su ID.

Endpoint

DELETE /appointments/{id}

Parámetros de ruta

NombreTipoObligatorioDescripción
idintegerID de la cita

Respuestas

204 No Content — Cita eliminada

Change Appointment Status

Actualiza el estado de una cita.

Endpoint

PUT /appointments/{id}/change-status

Parámetros de ruta

CampoTipoObligatorioDescripción
idintegerID de la cita

Cuerpo de la solicitud

Obligatorio

CampoTipoObligatorioDescripción
statusstringNuevo valor de estado

Ejemplo de solicitud

{
  "status": "approved"
}

Respuestas

200 OK — Estado actualizado

La especificación OpenAPI proporcionada no define un esquema de respuesta para este endpoint. Una implementación consistente puede devolver el objeto Appointment actualizado o una carga útil estándar de éxito.

Get Appointment Statuses

Devuelve la lista de estados de cita disponibles.

Endpoint

GET /appointments/statuses

Respuestas

200 OK — Estados disponibles

Cuerpo de respuesta: array de strings

Ejemplo de respuesta

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

Get Available Appointment Times

Devuelve una lista de franjas horarias disponibles para citas.

Endpoint

GET /appointments/available-times

Respuestas

200 OK — Horarios disponibles

Cuerpo de respuesta: array de strings

Ejemplo de respuesta

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

El esquema OpenAPI define el ejemplo como una cadena simple, como "2026-01-10 14:30". Si la implementación real espera valores ISO 8601 o valores con zona horaria, eso debe documentarse explícitamente.

Customers

El recurso de clientes proporciona endpoints para listar, recuperar, crear, actualizar y eliminar registros de clientes.

Get Customers

Devuelve una lista de clientes.

Endpoint

GET /customers

Respuestas

200 OK — Lista de clientes

Cuerpo de respuesta: array de Customer

Ejemplo de respuesta

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

Get Customer Info

Devuelve un cliente por ID.

Endpoint

GET /customer/info/{id}

Parámetros de ruta

CampoTipoObligatorioDescripción
idintegerID del cliente

Respuestas

200 OK — Información del cliente

Cuerpo de respuesta: Customer

Ejemplo de respuesta

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

Create Customer

Crea un nuevo cliente.

Endpoint

POST /customer/create

Cuerpo de la solicitud

Obligatorio — CustomerCreate

Ejemplo de solicitud

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

Respuestas

201 Created — Cliente creado

Cuerpo de respuesta: Customer

Edit Customer

Actualiza un cliente existente.

Endpoint

POST /customer/edit

Cuerpo de la solicitud

Obligatorio — CustomerUpdate

Ejemplo de solicitud

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

Respuestas

200 OK — Cliente actualizado

La especificación OpenAPI proporcionada no define un esquema de respuesta para este endpoint. Devolver el objeto Customer actualizado mejoraría la consistencia.

Delete Customer

Elimina un cliente por ID.

Endpoint

POST /customer/delete

Cuerpo de la solicitud

Obligatorio

CampoTipoObligatorioDescripción
idintegerID del cliente

Ejemplo de solicitud

{
  "id": 55
}

Respuestas

200 OK — Cliente eliminado

Este endpoint usa POST en lugar de DELETE. Si eso es intencional por patrones de implementación específicos de WordPress, permisos o manejo de nonces, la razón debería documentarse claramente para los consumidores de la API.

Schemas

Los siguientes esquemas se describen en la especificación OpenAPI proporcionada.

Appointment

CampoTipoNotas
idintegerID de la cita
customer_idintegerID del cliente relacionado
service_idintegerID del servicio relacionado
staff_idintegerID del personal relacionado
datestring (date-time)Fecha y hora ISO 8601
statusstringEstado de la cita

AppointmentCreate

Campos obligatorios: customer_id, service_id, date

CampoTipoObligatorioNotas
customer_idintegerID del cliente
service_idintegerID del servicio
staff_idintegerNoID del personal
datestring (date-time)Fecha y hora ISO 8601

AppointmentUpdate

CampoTipoObligatorioNotas
staff_idintegerNoID del personal
datestring (date-time)NoFecha y hora ISO 8601
statusstringNoEstado de la cita

Customer

CampoTipoNotas
idintegerID del cliente
namestringNombre del cliente
emailstring (email)Correo electrónico del cliente
phonestringTeléfono del cliente

CustomerCreate

Campos obligatorios: name

CampoTipoObligatorioNotas
namestringNombre del cliente
emailstring (email)NoCorreo electrónico del cliente
phonestringNoTeléfono del cliente

CustomerUpdate

Campos obligatorios: id

CampoTipoObligatorioNotas
idintegerID del cliente
namestringNoNombre del cliente
emailstring (email)NoCorreo electrónico del cliente
phonestringNoTeléfono del cliente

Endpoint Summary

La siguiente tabla resume todos los endpoints definidos en la especificación proporcionada.

Appointment Endpoints

MétodoEndpointDescripción
GET/appointmentsObtener citas
POST/appointmentsCrear cita
GET/appointments/{id}Obtener cita por ID
PUT/appointments/{id}Actualizar cita
DELETE/appointments/{id}Eliminar cita
PUT/appointments/{id}/change-statusCambiar estado de la cita
GET/appointments/statusesObtener estados de cita
GET/appointments/available-timesObtener horarios disponibles de cita

Customer Endpoints

MétodoEndpointDescripción
GET/customersObtener clientes
GET/customer/info/{id}Obtener información del cliente
POST/customer/createCrear cliente
POST/customer/editEditar cliente
POST/customer/deleteEliminar cliente

Notes for Implementers

Algunos detalles de la especificación proporcionada no están completamente definidos y se beneficiarían de una aclaración en la documentación final de producción.

Missing Response Schemas

Estos endpoints no definen esquemas de respuesta en el archivo OpenAPI proporcionado:

EndpointNota
PUT /appointments/{id}La respuesta de la cita actualizada no está definida
PUT /appointments/{id}/change-statusLa carga útil de respuesta no está definida
POST /customer/editLa respuesta del cliente actualizado no está definida

Devolver el objeto de recurso actualizado para estos endpoints haría que la API fuese más fácil de usar y más consistente.

Time Format Consistency

El campo date está documentado como string (date-time) y los ejemplos de solicitud y respuesta usan valores ISO 8601 como:

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

Al mismo tiempo, el endpoint de horarios disponibles devuelve cadenas con formato como:

"2026-01-10 14:30"

Si la implementación depende de una zona horaria específica, de la hora local del servidor o de un formato ISO 8601 estricto, esa expectativa debería documentarse explícitamente.

HTTP Method Consistency

El endpoint para eliminar cliente usa POST en lugar de DELETE:

POST /customer/delete

Si este comportamiento es intencional, documentar la razón reducirá la confusión para los desarrolladores que integren con la API.

Summary

La REST API de Booknetic proporciona una interfaz basada en JSON para gestionar citas y clientes bajo el namespace /wp-json/booknetic/v1.

La especificación actual incluye soporte para:

RecursoOperaciones
AppointmentsListar, crear, recuperar, actualizar, eliminar, cambiar estado, obtener estados, obtener horarios disponibles
CustomersListar, recuperar, crear, actualizar, eliminar