Cómo Construir un Endpoint Personalizado en WordPress
Un endpoint personalizado en WordPress te permite añadir rutas específicas para procesar solicitudes y devolver respuestas en formato JSON, algo ideal para integraciones y aplicaciones modernas. En este artículo, crearemos un endpoint que procese un parámetro y devuelva un estado 200 o 400 según corresponda.
Registrar el Endpoint
Utilizamos rest_api_initpara registrar el endpoint:
<?php
add_action('rest_api_init', function () {
register_rest_route('myApi/v1', '/processCode', [
'methods' => 'POST',
'callback' => 'processCodeHandler',
'permission_callback' => '__return_true', // Permite acceso público
]);
});
Crear el Callback
El callback procesa las solicitudes, valida parámetros y responde con el estado adecuado.
<?php
function processCodeHandler(WP_REST_Request $request) {
// Obtener el parámetro enviado en la solicitud
$code = $request->get_param('code');
// Validar que el parámetro existe
if (empty($code)) {
$response = new WP_REST_Response([
'success' => false,
'message' => 'The "code" parameter is required.',
]);
$response->set_status(400); // Código de error HTTP 400
return $response;
}
// Procesar el código (puede ser cualquier lógica personalizada)
$result = executeCode($code);
// Responder con estado 200 y el resultado del procesamiento
$response = new WP_REST_Response([
'success' => true,
'data' => $result,
]);
$response->set_status(200); // Código de éxito HTTP 200
return $response;
}
function executeCode($code) {
// Aquí podrías procesar el código como sea necesario
// Ejemplo: devolver el código convertido a mayúsculas
return strtoupper($code);
}
En este ejemplo:
- Si falta el parámetro
code, se devuelve un mensaje de error con estado400.Si el parámetro es válido, se procesa el código y se devuelve con estado200.
Probar el Endpoint
Prueba el endpoint con herramientas como Postman, Insomnia, o curl.
Ejemplo usando curl:
curl -X POST https://your-site.com/wp-json/myApi/v1/processCode \
-H "Content-Type: application/json" \
-d '{"code":"example text"}'
Respuesta exitosa (200):
{
"success": true,
"data": "EXAMPLE TEXT"
}
Respuesta con error (400):
{
"success": false,
"message": "The 'code' parameter is required."
}
Agregar Seguridad (Opcional)
Puedes añadir un callback de permisos para proteger el endpoint:
'permission_callback' => function () {
return current_user_can('manage_options'); // Solo administradores
},
Con este ejemplo, tienes una base sólida para crear endpoints en WordPress y manejar tanto respuestas exitosas como errores usando el método set_status().
Si necesitas adaptar esta funcionalidad, no dudes en personalizarla según tus requisitos. 😊




