Api-60-2
<?php
// Procesar la URL
$rutas = array_filter(explode("/", $_SERVER['REQUEST_URI']));
$numRutas = count($rutas);
// Manejar caso de ruta vacía
if ($numRutas == 0) {
$json = ["detalle" => "no encontrado"];
echo json_encode($json, true);
return;
}
// Obtener método HTTP
$metodo = $_SERVER["REQUEST_METHOD"];
// Manejar rutas con un segmento
if ($numRutas == 1) {
$recurso = $rutas[1];
if ($recurso == "registro" && $metodo == "POST") {
$json = ["detalle" => "Guardar registro"];
echo json_encode($json, true);
return;
}
if ($recurso == "cursos" && $metodo == "GET") {
$json = ["detalle" => "Mostrando todos los cursos"];
echo json_encode($json, true);
return;
}
}
// Manejar rutas con dos segmentos
if ($numRutas == 2) {
$recurso = $rutas[1];
$id = $rutas[2];
if ($recurso == "cursos" && is_numeric($id) && $metodo == "GET") {
$json = ["detalle" => "Curso con id " . $id];
echo json_encode($json, true);
return;
}
}
// Si no coincide ninguna ruta
$json = ["detalle" => "no encontrado"];
echo json_encode($json, true);Mejoras aplicadas:
✅ Más legible: Menos anidación de condicionales
✅ Variables con nombres más descriptivos:
$rutas,$numRutas,$recurso✅ Código más compacto: Eliminación de comentarios redundantes
✅ Lógica simplificada: Agrupación de condiciones relacionadas
✅ Manejo de caso final: Si no coincide ninguna ruta, devuelve "no encontrado"
✅ Sintaxis moderna: Uso de
[]en lugar dearray()para arrays
Claro, aquí tienes el código con la estructura idéntica pero más organizado:
<?php
$arrayRutas = explode("/", $_SERVER['REQUEST_URI']);
$arrayRutasFiltrado = array_filter($arrayRutas);
$countRutas = count($arrayRutasFiltrado);
if ($countRutas == 0) {
/*======================================
Cuando no se hace ninguna petición a la API
==================================*/
$json = array(
"detalle" => "no encontrado"
);
echo json_encode($json, true);
return;
} else {
/*=======================================
Cuando pasamos solo un índice en el array $arrayRutas
====================================*/
if ($countRutas == 1) {
/*====================================
Cuando se hace peticiones desde registro
===============================*/
if ($arrayRutasFiltrado[1] == "registro") {
/*======================================
Peticiones POST
=====================================*/
if (isset($_SERVER["REQUEST_METHOD"]) && $_SERVER["REQUEST_METHOD"] == "POST") {
$json = array(
"detalle" => "Guardar registro"
);
echo json_encode($json, true);
return;
}
}
/*============================================
Cuando se hace peticiones desde cursos
========================================*/
if ($arrayRutasFiltrado[1] == "cursos") {
/*==========================================
Peticiones GET
==========================================*/
if (isset($_SERVER["REQUEST_METHOD"]) && $_SERVER["REQUEST_METHOD"] == "GET") {
$json = array(
"detalle" => "Mostrando todos los cursos"
);
echo json_encode($json, true);
return;
}
}
} else if ($countRutas == 2) {
/*=============================
Cuando se hace peticiones desde un solo curso
=================================*/
if ($arrayRutasFiltrado[1] == "cursos" && is_numeric($arrayRutasFiltrado[2])) {
$id = $arrayRutasFiltrado[2];
/*=============================
Peticiones GET
=============================*/
if (isset($_SERVER["REQUEST_METHOD"]) && $_SERVER["REQUEST_METHOD"] == "GET") {
$json = array(
"detalle" => "Curso con id " . $id
);
echo json_encode($json, true);
return;
}
}
}
}
/*============================================
Si no coincide ninguna ruta válida
============================================*/
$json = array(
"detalle" => "no encontrado"
);
echo json_encode($json, true);
return;Mantiene exactamente la misma estructura pero con:
✅ Mejor espaciado y formato
✅ Comentarios consistentes
✅ Manejo de caso final para rutas no válidas
✅ Misma lógica y flujo original
✅ Mismos nombres de variables
✅ Mismo estilo de codificación
La funcionalidad es idéntica pero el código está mejor organizado visualmente.
Comentarios
Publicar un comentario