Skip to content

Simple Java backend sin dependencias

Posted on:28 de enero de 2024 at 08:22

Creando un Backend Simple en Java con HttpServer

En la era actual de desarrollo de software, el backend es el pilar fundamental de las aplicaciones web y móviles. A menudo, para proyectos pequeños o para fines educativos, es útil crear un backend de manera simple y directa. En este artículo, exploraremos cómo implementar un servidor backend en Java utilizando HttpServer, una clase incluida en el JDK de Java, sin depender de librerías o frameworks adicionales.

Enfoque: Uso de HttpServer en Java

La clase HttpServer proporcionada en el paquete com.sun.net.httpserver de Java permite crear un servidor HTTP básico. Este enfoque es ideal para comprender los fundamentos de la creación de servidores en Java y para implementar aplicaciones pequeñas.

Ventajas del Enfoque

Minimalismo: No requiere librerías externas, lo que hace que el proyecto sea liviano. Facilidad de Aprendizaje: Bueno para entender los fundamentos del manejo de HTTP en

Desventajas del Enfoque

Limitado en Funcionalidades: Falta de características avanzadas como manejo automático de JSON, inyección de dependencias, etc. Manejo Manual de Peticiones: Es necesario escribir más código para manejar diferentes tipos de peticiones y rutas. Escalabilidad y Mantenimiento: Puede ser desafiante escalar y mantener para aplicaciones más complejas.

Implementación Paso a Paso

Paso 1: Creación del Servidor HTTP Primero, vamos a crear un servidor HTTP básico que escuchará en un puerto específico:

    import com.sun.net.httpserver.HttpServer;
    import com.sun.net.httpserver.HttpHandler;
    import com.sun.net.httpserver.HttpExchange;
    import java.io.IOException;
    import java.io.OutputStream;
    import java.net.InetSocketAddress;

    public class SimpleHttpServer {

        public static void main(String[] args) throws IOException {
            HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0);
            server.createContext("/test", new MyHandler());
            server.setExecutor(null);
            server.start();
        }

        static class MyHandler implements HttpHandler {
            @Override
            public void handle(HttpExchange t) throws IOException {
                String response = "Hello, this is a simple Java HTTP server!";
                t.sendResponseHeaders(200, response.length());
                OutputStream os = t.getResponseBody();
                os.write(response.getBytes());
                os.close();
            }
        }
    }

En este código, se crea un HttpServer que escucha en el puerto 8000. Se define un HttpHandler, MyHandler, para manejar las solicitudes HTTP en la ruta /test.

Paso 2: Ejecución y Pruebas

Para probar el servidor, simplemente ejecuta el código en tu IDE o línea de comandos y visita http://localhost:8000/test en tu navegador. También puedes usar herramientas como curl para hacer solicitudes HTTP.

Paso 3: Expandiendo el Servidor

Aunque el ejemplo anterior es bastante básico, se puede expandir para manejar diferentes rutas, tipos de peticiones (GET, POST, etc.), y devolver respuestas más complejas. Esto requerirá una gestión más detallada de HttpExchange y posiblemente la implementación de un sistema de enrutamiento más sofisticado.

Conclusión

El uso de HttpServer en Java para crear un backend es una excelente manera de aprender los principios básicos del desarrollo de servidores y es adecuado para aplicaciones pequeñas o proyectos de aprendizaje. Sin embargo, para aplicaciones más complejas, especialmente en entornos de producción, se recomienda utilizar frameworks como Spring Boot, que ofrecen una mayor gama de funcionalidades y facilitan la gestión de la aplicación.