59-3-completo
- Obtener vínculo
- X
- Correo electrónico
- Otras apps
<?php
$arrayRutas = explode("/", $_SERVER['REQUEST_URI']);
$arrayRutasFiltrado = array_filter($arrayRutas);
$countRutas = count($arrayRutasFiltrado);
if ($countRutas == 0) {
$json = array(
"detalle" => "no encontrado"
);
echo json_encode($json, true);
return;
} else {
if ($countRutas == 1) {
if ($arrayRutasFiltrado[1] == "registro") {
if (isset($_SERVER["REQUEST_METHOD"]) && $_SERVER["REQUEST_METHOD"] == "POST") {
$json = array(
"detalle" => "Guardar registro"
);
echo json_encode($json, true);
return;
}
}
if ($arrayRutasFiltrado[1] == "cursos") {
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) {
if ($arrayRutasFiltrado[1] == "cursos" && is_numeric($arrayRutasFiltrado[2])) {
$id = $arrayRutasFiltrado[2];
if (isset($_SERVER["REQUEST_METHOD"]) && $_SERVER["REQUEST_METHOD"] == "GET") {
$json = array(
"detalle" => "Curso con id " . $id
);
echo json_encode($json, true);
return;
}
}
}
}
$json = array(
"detalle" => "no encontrado"
);
echo json_encode($json, true);
return;Explicación del código:
1. Procesamiento de la URL:
php
$arrayRutas = explode("/", $_SERVER['REQUEST_URI']);
$arrayRutasFiltrado = array_filter($arrayRutas);
$countRutas = count($arrayRutasFiltrado);Divide la URL en partes usando "/" como separador
Filtra elementos vacíos
Cuenta cuántos segmentos válidos tiene la URL
2. Tres casos principales:
Caso 1: URL base ($countRutas == 0)
Ejemplo:
https://midominio.comDevuelve "no encontrado"
Caso 2: Una ruta ($countRutas == 1)
/registro+ método POST: "Guardar registro"/cursos+ método GET: "Mostrando todos los cursos"
Caso 3: Dos rutas ($countRutas == 2)
/cursos/2+ método GET: "Curso con id 2"Solo funciona si el segundo segmento es numérico
3. Flujo del código:
Verifica el número de segmentos en la URL
Valida la ruta específica y el método HTTP
Devuelve respuestas JSON apropiadas
Si no coincide nada, devuelve "no encontrado"
El código maneja una API REST básica con endpoints para registro y cursos, diferenciando entre listar todos los cursos y obtener un curso específico por ID.
- Obtener vínculo
- X
- Correo electrónico
- Otras apps
Comentarios
Publicar un comentario