Continuando con Loopback, un framework para crear microservicios con Node JS y Typescript, está vez crearemos un sencillo api rest que calcule la probabilidad de un evento.
La fórmula que emplearemos será la siguiente:
Probabilidad = eventosExitosos / totalEventosOcurridos
Donde:
- Evento: Un evento es un resultado particular que nos interesa.
- Casos favorables (eventosExitosos): Son los resultados que cumplen con las condiciones del evento que estamos estudiando.
- Casos posibles (totalEventosOcurridos): Son todos los resultados que pueden ocurrir en un experimento.
Lo primero que haremos seá instalar Loopback si no lo tenemos instalado:
$ npm install -g @loopback/cli
Creamos un directorio y nos ubicamos en el:
$ mkdir calcula-probabilidad && cd calcula-probabilidad
Creamos la aplicación con Loopback:
$ lb4 app
Esto iniciará un prompt donde colocaremos las características del proyecto.
Iniciamos la aplicación:
$ npm start
Ahora crearemos un controlador al que llamaremos ``CalculaProbabilidadController``:
$ lb4 controller
Abrimos el archivo en src/controllers/calcula-probabilidad.controllers.ts y lo editamos:
import {get, param} from '@loopback/rest'; export class CalculaProbabilidadController { constructor() { } @get('/calcular-probabilidad', { responses: { '200': { description: 'Resultado de la probabilidad', content: { 'application/json': { schema: { type: 'object', properties: { eventos_exitosos: {type: 'number'}, total_eventos_ocurridos: {type: 'number'}, probabilidad: {type: 'number'}, }, }, }, }, }, }, }) calcularProbabilidad( @param.query.number('eventosExitosos', { description: 'Número de eventos exitosos', required: true, }) eventosExitosos: number, @param.query.number('totalEventosOcurridos', { description: 'Número total de eventos ocurridos', required: true, }) totalEventosOcurridos: number, ): object { if ( totalEventosOcurridos === 0 || totalEventosOcurridos < eventosExitosos ) { return { error: 'El total de eventos ocurridos no puede ser 0 ni menor que los eventos exitosos.', }; } const resultado = eventosExitosos / totalEventosOcurridos; return { eventos_exitosos: eventosExitosos, total_eventos_ocurridos: totalEventosOcurridos, probabilidad: resultado, }; } }
Es necesario también editar el archivo tsconfig.json.
{ "$schema": "http://json.schemastore.org/tsconfig", "extends": "@loopback/build/config/tsconfig.common.json", "compilerOptions": { "target": "es2020", "module": "commonjs", "lib": [ "es2020" ], "experimentalDecorators": true, "emitDecoratorMetadata": true, "strict": true, "outDir": "dist", "rootDir": "src" }, "include": [ "src" ] }
Esto para poder usar decoradores. Como se puede ver, usamos Typescript como lenguaje base. El controlador de nuestra aplicación contendrá el método que recibirá dos parámetros (eventoExitosos y totalEventosOcurridos) y nos devolverá el cálculo de la probabilidad.
Volvemos a iniciar la aplicación:
$ npm start
Abrimos el navegador en la siguiente ruta:
http://localhost:3000/calcular-probabilidad?eventosExitosos=24&totalEventosOcurridos=50Al abrirla nos devolverá el siguiente resultado en formato JSON:
{ "eventos_exitosos": 24, "total_eventos_ocurridos": 50, "probabilidad": 0.48 }
¡Hemos creado un sencillo servicio rest! Continuaremos hablando sobre más herramientas para desarrollo web en próximas entregas.
Enlaces:
https://alquimistadecodigo.blogspot.com/2025/06/loopback-un-framework-para-crear.html
Comentarios
Publicar un comentario