Ir al contenido principal

Loopback, creando un sencillo servicio REST

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=50

Al 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

Entradas populares de este blog

Odin language: el lenguaje de programación orientado a datos para un desarrollo de software sensato

En esta serie sobre lenguajes de programación hablamos de Odin , un lenguaje orientado a datos. Un nuevo lenguaje de programación que nos podrá recordar a lenguajes como C++, Python, Golang o hasta Rust. Instalación (Windows): 1 2 3 4 $ git clone https://github.com/odin-lang/Odin $ cd Odin $ git pull $ build.bat release Debemos asegurarnos de crear la variable de entorno: Nombre: ODIN_HOME Valor: C:\Users\HP\Documents\pruebasOdin\Odin Ejemplo 1. Como primer programa tendremos al clásico "Hola, mundo". holamundo.odin package holamundo import " core:fmt " main : : proc ( ) { fmt . println ( " ¡Hola, mundo desde Odin! " ) } Construimos: $ odin build holamundo . odin - file Ejecutamos: $ holamundo .exe Recordar que si usamos Visual Studio Code podemos instalar el plugin de Odin Language: https://marketplace.visualstudio.com/items?itemName=DanielGavin.ols Ejemplo 2. Programa que muestre las variables que pod...

Programación Windows Batch (CMD) parte 3

Crear ciclos para efectuar operaciones tediosas nos ahorrará tiempo para realizar otras tareas. En está ocasión veremos ciclos con FOR . ¿Cuál es la síntaxis de bucle FOR en Windows Batch? Si está dentro de un archivo *.bat : FOR %%variable IN (seq) DO operaciones Si lo ejecutamos en una terminal: FOR %variable IN (seq) DO operaciones Ejemplo 1 . Recorrer una secuencia de números del 0 al 5: recorrer.bat @ echo off FOR %%i in ( 0 1 2 3 4 5 ) DO echo Hola no. %%i pause Nos imprimirá en pantalla: Hola no. 0 Hola no. 1 Hola no. 2 Hola no. 3 Hola no. 4 Hola no. 5 ¿Puedo usar contadores? Si, se pueden usar. Ejemplo 2 . Uso de contadores: contador.bat @ echo off set numeros = 1 2 3 4 5 6 7 8 9 10 set cont = 0 for %%a in ( %numeros% ) do ( echo Hola no. %%a :: Contador set /a cont+ = 1 ) echo Total: %cont% Este código nos imprimirá, además de los mensajes Hola no. 0 ..., el total de valores conta...

z/OS, ¿Qué es? y ¿Cuáles son sus herramientas?

  En este post veremos las herramientas de z/OS de IBM. z/OS es un sistema operativo de mainframe desarrollado por IBM.  Es parte de la serie IBM z Systems (anteriormente conocida como System z), que se utiliza en los sistemas mainframe de IBM. z/OS es uno de los sistemas operativos más utilizados en el mundo empresarial para ejecutar aplicaciones críticas y procesar grandes volúmenes de datos. Características clave de z/OS: Escalabilidad : z/OS es conocido por su capacidad para manejar grandes cargas de trabajo y escalabilidad vertical, lo que permite agregar recursos de hardware para satisfacer las demandas de procesamiento. Confiabilidad y disponibilidad : z/OS está diseñado para ofrecer alta disponibilidad y confiabilidad. Incorpora características como redundancia y recuperación ante fallas para garantizar la continuidad de las operaciones. Seguridad : Proporciona una amplia gama de funciones de seguridad, como autenticación, autorización y auditoría, para proteger los...