Te ayudo a crear una API muy sencilla en PHP utilizando esos datos
Te ayudo a crear una API muy sencilla en PHP utilizando esos datos. Aquí tienes la implementación completa:
Archivo: api.php
<?php
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type');
// Datos de usuarios
$usuarios = [
[
"id" => 1,
"nombre" => "Ana García",
"fecha_registro" => "2024-01-15"
],
[
"id" => 2,
"nombre" => "Carlos López",
"fecha_registro" => "2023-11-20"
],
[
"id" => 3,
"nombre" => "María Rodríguez",
"fecha_registro" => "2024-03-05"
]
];
// Obtener método de la solicitud
$method = $_SERVER['REQUEST_METHOD'];
// Manejar solicitud OPTIONS (preflight)
if ($method === 'OPTIONS') {
http_response_code(200);
exit();
}
// Obtener ID de la URL si existe
$url_parts = explode('/', $_SERVER['REQUEST_URI']);
$id = isset($url_parts[2]) ? intval($url_parts[2]) : null;
// Procesar la solicitud según el método
switch ($method) {
case 'GET':
handleGet($usuarios, $id);
break;
case 'POST':
handlePost($usuarios);
break;
case 'PUT':
handlePut($usuarios, $id);
break;
case 'DELETE':
handleDelete($usuarios, $id);
break;
default:
http_response_code(405);
echo json_encode(["error" => "Método no permitido"]);
break;
}
// Función para manejar GET
function handleGet($usuarios, $id) {
if ($id) {
// Buscar usuario por ID
$usuario = null;
foreach ($usuarios as $u) {
if ($u['id'] === $id) {
$usuario = $u;
break;
}
}
if ($usuario) {
echo json_encode($usuario);
} else {
http_response_code(404);
echo json_encode(["error" => "Usuario no encontrado"]);
}
} else {
// Devolver todos los usuarios
echo json_encode($usuarios);
}
}
// Función para manejar POST
function handlePost(&$usuarios) {
$input = json_decode(file_get_contents('php://input'), true);
if (isset($input['nombre']) && isset($input['fecha_registro'])) {
$nuevoId = max(array_column($usuarios, 'id')) + 1;
$nuevoUsuario = [
"id" => $nuevoId,
"nombre" => $input['nombre'],
"fecha_registro" => $input['fecha_registro']
];
$usuarios[] = $nuevoUsuario;
http_response_code(201);
echo json_encode($nuevoUsuario);
} else {
http_response_code(400);
echo json_encode(["error" => "Datos incompletos"]);
}
}
// Función para manejar PUT
function handlePut(&$usuarios, $id) {
if (!$id) {
http_response_code(400);
echo json_encode(["error" => "ID requerido"]);
return;
}
$input = json_decode(file_get_contents('php://input'), true);
$usuarioIndex = null;
foreach ($usuarios as $index => $usuario) {
if ($usuario['id'] === $id) {
$usuarioIndex = $index;
break;
}
}
if ($usuarioIndex === null) {
http_response_code(404);
echo json_encode(["error" => "Usuario no encontrado"]);
return;
}
// Actualizar campos
if (isset($input['nombre'])) {
$usuarios[$usuarioIndex]['nombre'] = $input['nombre'];
}
if (isset($input['fecha_registro'])) {
$usuarios[$usuarioIndex]['fecha_registro'] = $input['fecha_registro'];
}
echo json_encode($usuarios[$usuarioIndex]);
}
// Función para manejar DELETE
function handleDelete(&$usuarios, $id) {
if (!$id) {
http_response_code(400);
echo json_encode(["error" => "ID requerido"]);
return;
}
$usuarioIndex = null;
foreach ($usuarios as $index => $usuario) {
if ($usuario['id'] === $id) {
$usuarioIndex = $index;
break;
}
}
if ($usuarioIndex === null) {
http_response_code(404);
echo json_encode(["error" => "Usuario no encontrado"]);
return;
}
// Eliminar usuario
$usuarioEliminado = $usuarios[$usuarioIndex];
array_splice($usuarios, $usuarioIndex, 1);
echo json_encode(["message" => "Usuario eliminado", "usuario" => $usuarioEliminado]);
}
?>Archivo: .htaccess (opcional, para URLs amigables)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ api.php [QSA,L]Cómo usar la API:
1. Obtener todos los usuarios:
GET http://tudominio.com/api.php
2. Obtener un usuario específico:
GET http://tudominio.com/api.php/1
3. Crear un nuevo usuario:
POST http://tudominio.com/api.php Content-Type: application/json { "nombre": "Juan Pérez", "fecha_registro": "2024-05-20" }
4. Actualizar un usuario:
PUT http://tudominio.com/api.php/1 Content-Type: application/json { "nombre": "Ana García Modificado", "fecha_registro": "2024-01-16" }
5. Eliminar un usuario:
DELETE http://tudominio.com/api.php/1
Características de la API:
✅ RESTful: Soporta GET, POST, PUT, DELETE
✅ CORS habilitado: Puede ser consumida desde cualquier dominio
✅ JSON: Todas las respuestas en formato JSON
✅ Códigos de estado HTTP: Respuestas apropiadas (200, 201, 400, 404, 405)
✅ Validación básica: Verifica datos requeridos
✅ Muy simple: Sin bases de datos ni dependencias externas
¡La API está lista para usar! Solo guarda el código en un archivo api.php y accede a través de HTTP
Comentarios
Publicar un comentario