Análisis y Reescritura del Código PHP

 

Análisis y Reescritura del Código PHP

He analizado las imágenes del código PHP y voy a reescribirlo de manera completa y funcional.

php
<?php
// Obtener la URL solicitada y dividirla en partes
$arrayRutas = explode("/", $_SERVER['REQUEST_URI']);
$rutasFiltradas = array_filter($arrayRutas);

// Si no hay rutas especificadas (solo la raíz)
if (count($rutasFiltradas) == 0) {
    /*============================================================= 
    Cuando no se hace ninguna petición específica a la API 
    ===============================================================*/ 
    
    $json = array(
        "detalle" => "no encontrado",
        "mensaje" => "Bienvenido a la API. Por favor, especifique un endpoint válido."
    );
    
    // Establecer el código de respuesta HTTP 404
    http_response_code(404);
    header('Content-Type: application/json');
    echo json_encode($json, true);
    
} else {
    // Verificar si la primera ruta después del dominio es "registro"
    if ($rutasFiltradas[1] == "registro") {
        $json = array(
            "detalle" => "estoy en registro",
            "accion" => "Procesar solicitud de registro"
        );
        
        header('Content-Type: application/json');
        echo json_encode($json, true);
    } else {
        // Manejar otras rutas no reconocidas
        $json = array(
            "detalle" => "ruta no reconocida",
            "ruta_solicitada" => implode("/", $rutasFiltradas)
        );
        
        http_response_code(404);
        header('Content-Type: application/json');
        echo json_encode($json, true);
    }
}
?>

Explicación del código:

  1. Obtención de la URL:

    • $_SERVER['REQUEST_URI'] captura la URL solicitada

    • explode("/", ...) divide la URL en partes usando "/" como separador

    • array_filter() elimina elementos vacíos del array resultante

  2. Primera condición:

    • Si no hay rutas especificadas (solo el dominio raíz), devuelve un mensaje de "no encontrado"

    • Establece el código de respuesta HTTP 404 (No encontrado)

    • Configura la cabecera para indicar que la respuesta es JSON

  3. Segunda condición:

    • Si la primera parte de la ruta es "registro", devuelve un mensaje confirmando que está en el endpoint de registro

    • Para cualquier otra ruta, devuelve un error 404 indicando que la ruta no fue reconocida

  4. Mejoras implementadas:

    • Código de respuesta HTTP apropiado para cada caso

    • Cabeceras Content-Type para respuestas JSON

    • Mensajes más descriptivos

    • Manejo de errores para rutas no definidas

Este código parece ser parte de una API simple que maneja diferentes endpoints. La estructura sugiere que está diseñado para procesar solicitudes y devolver respuestas en formato JSON.


Código PHP sin headers

php
<?php
// Obtener la URL solicitada y dividirla en partes
$arrayRutas = explode("/", $_SERVER['REQUEST_URI']);
$rutasFiltradas = array_filter($arrayRutas);

// Si no hay rutas especificadas (solo la raíz)
if (count($rutasFiltradas) == 0) {
    /*============================================================= 
    Cuando no se hace ninguna petición específica a la API 
    ===============================================================*/ 
    
    $json = array(
        "detalle" => "no encontrado",
        "mensaje" => "Bienvenido a la API. Por favor, especifique un endpoint válido."
    );
    
    echo json_encode($json, true);
    
} else {
    // Verificar si la primera ruta después del dominio es "registro"
    if ($rutasFiltradas[1] == "registro") {
        $json = array(
            "detalle" => "estoy en registro",
            "accion" => "Procesar solicitud de registro"
        );
        
        echo json_encode($json, true);
    } else {
        // Manejar otras rutas no reconocidas
        $json = array(
            "detalle" => "ruta no reconocida",
            "ruta_solicitada" => implode("/", $rutasFiltradas)
        );
        
        echo json_encode($json, true);
    }
}
?>

Explicación del código simplificado:

He eliminado las líneas header() y http_response_code() que estaban configurando las cabeceras HTTP, tal como solicitaste. El código ahora se centra únicamente en:

  1. Analizar la URL solicitada y dividirla en partes

  2. Comprobar si no hay rutas específicas (solo el dominio raíz)

  3. Verificar si la ruta es "registro" y responder apropiadamente

  4. Manejar otras rutas no reconocidas con un mensaje de error

Todas las respuestas se devuelven en formato JSON mediante json_encode(), pero sin las cabeceras HTTP que indicarían explícitamente que el contenido es JSON. Esto podría causar problemas en algunos clientes que esperan una cabecera Content-Type específica

Comentarios

Entradas más populares de este blog

60. Construcción de Controladores

Api-60-2

Te ayudo a crear una API muy sencilla en PHP utilizando esos datos