Loading repository data…
Loading repository data…
KrashMello / repository
Elumian es un framework modular diseñado específicamente para desarrolladores backend que necesitan desplegar APIs REST de forma rápida, eficiente y segura. Proporciona una estructura clara y herramientas integradas para la creación de módulos, gestión de servicios, validación de datos y manejo de excepciones HTTP.
Elumian es un framework modular diseñado específicamente para desarrolladores backend que necesitan desplegar APIs REST de forma rápida, eficiente y segura. Proporciona una estructura clara y herramientas integradas para la creación de módulos, gestión de servicios, validación de datos y manejo de excepciones HTTP, facilitando el desarrollo escalable y mantenible.
Puedes instalar Elumian en tu proyecto utilizando cualquiera de los gestores de paquetes más populares de JavaScript:
npm i Elumian
yarn add Elumian
pnpm add Elumian
Elumian está pensado para integrarse fácilmente con TypeScript, ofreciendo tipados claros y anotaciones que permiten un desarrollo más seguro y robusto.
Elumian utiliza decoradores para definir módulos que agrupan controladores, servicios y middlewares.
import { Module } from "elumian/common"
@Module({
controllers: [TestController],
services: [TestService],
middlewares: [GlobalMiddleware]
})
class TestModule { }
controllers: Lista de controladores que gestionan las rutas y peticiones.services: Servicios que manejan la lógica de negocio.middlewares: Middlewares globales para manejo transversal de peticiones.Los servicios encapsulan la lógica reutilizable. Se definen también mediante decoradores.
import { Service } from "elumian/common"
@Service
class TestService {
data = {
nombre: "asdf"
}
getData() {
return {
status: HttpStatus.ok,
message: this.data,
type: 'SUCCESS'
}
}
}
getData() retorna un objeto con un estado HTTP, datos y un tipo de respuesta.Los controladores usan decoradores para definir rutas HTTP y validaciones sobre diferentes partes de la solicitud.
import { ValidateQuery, ValidateParams, ValidateBody, Post, Get, Controller } from "elumian/common"
import { HttpExceptions, HttpStatus } from "elumian/common"
import { bodyDataValidate } from "./dataValidateSchemas/bodyData.schema"
@Controller("test")
class TestController {
@Get("/")
getData(req, res) {
HttpExceptions(Elumian.TestService.getData())
}
@Post("/test/1")
@ValidateBody(bodyDataValidate)
@ValidateQuery(bodyDataValidate)
test1(req, res) {
HttpExceptions({
status: HttpStatus.ok,
message: { test: "test" },
type: 'SUCCESS'
})
}
@Post("/:id")
@ValidateParams(bodyDataValidate)
@ValidateBody(bodyDataValidate)
test2(req, res) {
HttpExceptions({
status: HttpStatus.ok,
message: { test: "test" },
type: 'SUCCESS'
})
}
}
@Controller("test"): Prefijo global para las rutas del controlador.@Get(), @Post(): Definición de métodos HTTP.@ValidateBody, @ValidateQuery, @ValidateParams: Validaciones aplicadas a diferentes partes de la solicitud basadas en esquemas.HttpExceptions: Maneja respuestas estandarizadas y excepciones HTTP.Los esquemas de validación definen reglas para los datos recibidos en las peticiones, utilizando las opciones de validación propias de Elumian.
import { validationsOptions } from "elumian/type"
export const bodyDataValidate: validationsOptions = {
fecha: ['required', 'date'],
}
fecha es obligatorio y debe cumplir con el formato fecha.Para iniciar tu servidor Elumian, configura los módulos que quieres cargar y define el puerto de escucha. Posteriormente, inicia el servidor.
import { Server } from "elumian/core";
Server.setConfig({ modules: [modulo1, modulo2], port: 5000 })
Server.start()
modules: Array con los módulos que contiene la aplicación.port: Puerto en el que el servidor escuchará las peticiones entrantes.