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 estado 400 .Si el parámetro es válido, se procesa el código y se devuelve con estado 200.

 

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

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Back to Top
0
Would love your thoughts, please comment.x
()
x