"Todo API running at {$protocol}://{$host}:{$port}/", 'available_endpoints' => [ 'GET /todos - Get all todos', 'POST /todos - Create todo', 'PUT /todos/:id - Update todo', 'DELETE /todos/:id - Delete todo' ] ], JSON_PRETTY_PRINT); } else { http_response_code(405); echo json_encode(['error' => 'Method not allowed']); } break; case '/todos': switch ($request_method) { case 'GET': $controller->getAllTodos(); break; case 'POST': $controller->createTodo(); break; default: http_response_code(405); echo json_encode(['error' => 'Method not allowed']); } break; default: // Handle /todos/:id routes if (preg_match('/^\/todos\/(\d+)$/', $path, $matches)) { $id = (int)$matches[1]; switch ($request_method) { case 'PUT': $controller->updateTodo($id); break; case 'DELETE': $controller->deleteTodo($id); break; default: http_response_code(405); echo json_encode(['error' => 'Method not allowed']); } } else { http_response_code(404); echo json_encode(['error' => 'Endpoint not found']); } } ?>