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_init
para 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. 😊