Este proyecto es una implementación ligera de un framework inspirado en Spring Boot y SparkJava, que permite definir controladores, rutas y manejar peticiones HTTP de manera sencilla usando anotaciones y reflexión en Java.
- Permite crear aplicaciones web ligeras en Java.
- Expone controladores con anotaciones como
@RestControllery@GetMapping. - Resuelve parámetros de métodos mediante anotaciones como
@RequestParam. - Soporta archivos estáticos (HTML, CSS, JS, imágenes).
- Implementa un servidor HTTP básico con Java Sockets.
Clase principal que inicia la aplicación. Se encarga de:
- Cargar los componentes (controladores y rutas anotadas).
- Iniciar el servidor HTTP embebido.
Anotación personalizada usada para marcar métodos en un controlador que responden a una ruta HTTP GET.
- Su valor (
value) define la URL del endpoint.
Ejemplo de un controlador REST que:
- Usa la anotación
@RestController. - Define métodos mapeados a rutas (
/,/hello,/pi) usando@GetMapping. - Responde con mensajes o valores calculados.
El núcleo del framework. Sus responsabilidades incluyen:
- Iniciar el servidor HTTP en un puerto fijo.
- Manejar peticiones y respuestas a través de sockets.
- Servir archivos estáticos desde un directorio.
- Registrar rutas dinámicas (GET).
- Cargar automáticamente controladores anotados con
@RestControllery sus métodos@GetMapping. - Resolver parámetros de entrada usando
@RequestParam.
En resumen: es el motor que conecta las peticiones entrantes con el código del usuario.
Representa la información de una petición HTTP. Contiene:
- Método (GET, POST, etc.).
- Ruta solicitada.
- Parámetros de consulta (
queryParams). - Cuerpo (
body).
Anotación usada en parámetros de métodos de un controlador para mapear valores desde la query string de la URL.
Ejemplo: ?name=Nico se inyecta en un parámetro con @RequestParam("name").
Representa la respuesta HTTP generada por un endpoint. Contiene:
- Tipo de contenido (
Content-Type). - Cuerpo de la respuesta.
Anotación que marca una clase como controlador REST.
- Es necesaria para que
MiniSparkla detecte y registre sus métodos anotados.
Interfaz funcional que define cómo se maneja una ruta.
- Recibe un
Requesty unResponse. - Devuelve un
Stringque corresponde al contenido de la respuesta HTTP.