Tribalyte Technologies Tribalyte Technologies
  • Inicio
  • Misión y visión
  • Nuestros expertos
  • Nuestras soluciones
  • Casos de éxito
  • Blog
  • Contáctanos
  • Únete al equipo
Tribalyte Technologies Tribalyte Technologies
  • Inicio
  • Misión y visión
  • Nuestros expertos
  • Nuestras soluciones
  • Casos de éxito
  • Blog
  • Contáctanos
  • Únete al equipo
Dic 05

Desarrollar una API REST en 5 minutos con Loopback 4

  • diciembre 5, 2019
  • David López
  • 2 Comments
  • Consejos tecnológicos, Desarrollo de software, Tecnologías

Sí, no has leído mal; esto es posible con Loopback, un framework altamente escalable de Node.js, desarrollado sobre Express.js que facilita la creación de APIs REST para clientes (aplicaciones móviles, de escritorio, web, etc) así como microservicios.

Ofrece muchas ventajas que lo convierten en una herramienta muy potente:

  • Es un framework maduro que facilita la adopción de las mejores prácticas en el diseño de APIs
  • Genera código automáticamente, facilitando el diseño y el testing
  • Las APIs se generan utilizando el estándar OpenAPI, por lo que se dispone de toda la potencia de las herramientas Swagger, muy populares y útiles.
  • Como consecuencia, permite a los desarrolladores enfocarse en la parte cliente, en la experiencia de usuario y en la lógica de negocio
  • Ofrece una gran capa de abstracción a la hora de trabajar con base de datos
  • Simplifica enormemente la conexión con base de datos con conectores para las más populares y utilizadas (Oracle, MySql, MongoDB, PostgreSQL, SQLite, etc)
  • También ofrece conectores para conectar fácilmente con otras APIs REST, servicios SOAP, servicios de correo, etc…
  • Con el paquete ‘authentication’ también es muy sencillo añadir autenticación a nuestra API con diferentes estrategias, como por ejemplo, JWT

Para esta pequeña guía, en la que vamos a crear una API para gestionar nuestra biblioteca de películas favoritas, necesitaremos instalar primero (seguir las instrucciones según nuestro sistema operativo):

  • MongoDB Server
  • Node.js (versión 8.9 o superior) y npm

Ahora, podemos proceder a instalar el CLI de Loopback 4 con npm (instalado si tenemos Node.js). Abrimos una terminal, ya sea del sistema o en nuestro editor de código favorito y ejecutamos:

npm i -g @loopback/cli

Si todo ha ido correctamente, ya deberíamos tener disponible el CLI de Loopback 4, y podremos crear nuestro proyecto. Para ello, nos situamos en el path donde queremos crearlo, y ejecutamos:

lb4 app

Loobpack comenzará a hacernos algunas preguntas (solo necesitamos contestar a la primera, referente al nombre del proyecto, el resto las podemos saltar pulsando intro para que tomen los valores por defecto):

? Project name: my-favorite-movies
? Project description: My first loopback project
? Project root directory: my-favorite-movies
? Application class name: StarterApplication
? Select features to enable in the project:
◉ Enable eslint: add a linter with pre-configured lint rules
◉ Enable prettier:install prettier to format code conforming to rules
◉ Enable mocha:install mocha to run tests
◉ Enable loopbackBuild: use @loopback/build helpers (e.g. lb-eslint)
◉ Enable vscode: add VSCode config files
◉ Enable docker: include Dockerfile and .dockerignore
◉ Enable repositories: include repository imports and RepositoryMixin
◉ Enable services: include service-proxy imports and ServiceMixin

Una vez termine, ya está el proyecto creado. Podemos dirigirnos a la raíz del mismo, e iniciarlo:

cd my-favorite-movies
npm start

Comprobemos que así es, abriendo nuestro navegador y dirigiéndonos a:

http://localhost:3000/explorer/

image2

Ahora vamos a crear el único modelo necesario para esta introducción, de nuevo, mediante línea de comandos:


lb4 model

Al igual que al crear el proyecto, nos hará varias preguntas.
Esta vez no escaparemos ninguna, únicamente se nos solicita el nombre del modelo, el tipo de modelo (seleccionaremos Entity) y las propiedades que tendrá.

Para cada propiedad, se nos harán algunas preguntas (que variarán según lo que vayamos contestando) como:

  • Nombre de la propiedad (no escribir nada y pulsar intro cuando no queramos añadir ninguna más)
  • Tipo
  • ¿Es la propiedad ID del modelo? (si contestamos que sí no nos lo preguntará para las siguientes propiedades como es lógico)
  • ¿Es una propiedad requerida? 
  • Valor por defecto (si queremos darle alguno)

image6

Si ahora nos dirigimos en nuestro proyecto, a src/models/movie.model.ts podremos ver el código autogenerado por loopback, y hacer alguna modificación si nos hemos equivocado, o se nos ha olvidado añadir alguna propiedad.

Pero esto no es suficiente para añadir este modelo a nuestra API y poder empezar a realizar operaciones CRUD sobre el mismo, necesitamos añadir 3 componentes más, estrictamente en este orden:

  • Datasource: configuración para conectar con nuestra base datos (o cualquier otra si disponemos de sus datos de conexión), en este caso, MongoDB
  • Repositorio: provee operaciones de acceso a datos (por ejemplo, CRUD)
  • Controlador: implementa las operaciones definidas por la API

Para ello, de nuevo, continuamos utilizando el CLI de Loopback y ejecutamos:

lb4 datasource

image3

Pasamos a crear el repositorio que nos proveerá de las operaciones CRUD:


lb4 repository

image4

Y por último, el controlador:


lb4 controller

image1

 

¡Hecho!

image5

Ya podemos volver a arrancar el proyecto, y comprobar los cambios desde el navegador:

image7

Desde aquí podemos empezar a jugar con la API y los nuevos endpoints que tenemos disponibles. Crear películas (con los campos que hemos definido en el modelo), comprobando que valida correctamente los tipos, los que hemos puesto como requeridos, borrarlas a partir de su id único, probar /movies/count, etc.

Si sois escépticos, y queréis comprobar que realmente los datos se están guardando en BBDD y no en memoria, podéis descargar alguna interfaz gráfica para mongo como RoboMongo y comprobar que la conexión con la base de datos es correcta, y que los modelos se han creado en base a lo que hemos contestado en las preguntas.

*Si nos da algún error relacionado con la conexión con Mongo, probablemente el servicio no esté arrancado en nuestro sistema, para ello, ejecuta el comando:

sudo service mongod start

Esperamos que os haya gustado esta pequeña introducción y que Loopback os pueda ahorrar mucho tiempo en futuros proyectos. ¡Hasta el próximo post!

Artículos Relacionados:

  • Expertos en desarrollo app de salud en Madrid y toda España7 recomendaciones para desarrollar la App de Salud perfecta
  • tribalyte_brightbyte1Lanzamiento de BrightByte Cloud
  • Depurando apps creadas con Ionic 3.xDepurando apps creadas con Ionic 3.x
  • youmedic videos medicina operaciones cirugíaLanzamiento Youmedic
  • Los 5 mejores regalos tecnológicosLos 5 mejores regalos tecnológicos
  • Facebook
  • Twitter
  • LinkedIn
  • E-Mail

About The Author

David es desarrollador de sofware. Su labor se centra en el desarrollo backend con diferentes frameworks basados en Java, aunque siempre ha trabajado como full stack. Se interesa mucho por escribir un código lo más limpio y eficiente posible, y desea ampliar sus conocimientos de la parte front con las últimas tecnologías.

2 Comments

  1. Technologies
    julio 2, 2020 at 12:38 pm · Responder

    Hola Andrés, gracias por participar en el blog.
    Hay varias estrategias de autenticación que se pueden aplicar en LoopBack 4:
    – JWT
    – Integración con passport para delegar esta autenticación en APIs de terceros como Facebook o Google
    – Desarrollar tu propia estrategia de autenticación

    Te recomiendo la lectura de esta sección de su documentación para aplicar la que más te convenga:
    https://loopback.io/doc/en/lb4/Authentication-overview.html

    Un saludo desde Tribalyte

  2. Andres
    julio 2, 2020 at 2:52 am · Responder

    Hola David, buen tema una pregunta, como se realiza la autenticación en lb4? en la versión anterior se generaba automáticamente.

Responder a Andres Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

ELIGE UNA CATEGORÍA

  • Blockchain
  • Consejos tecnológicos
  • Desarrollo de aplicaciones
  • Desarrollo de software
  • Sistema embebido
  • Tecnologías

Suscríbete a nuestra newsletter y entérate de las últimas tendencias tecnológicas.

Una compañía dedicada al desarrollo y la mejora de plataformas tecnológicas globales.

SOCIOS

Contacto

Glorieta de Quevedo 8 6º2
28015 Madrid (ESPAÑA)
Phone: +34 910 177 514 E-Mail: contact@tribalyte.com Web: www.tribalyte.com

AYUDA

  • Política de privacidad
  • Política de calidad
  • Términos de uso

CERTIFICACIONES

INTERNACIONALIZACIÓN

  Tribalyte     Technologies S.L. en   el Marco del Programa de Iniciación a la Exportación del Prog. ICEXNEXT, ha contado con el apoyo del ICEX y con la cofinanciación del fondo Europeo FEDER. La finalidad de este apoyo es contribuir al desarrollo Internacional de la empresa y de su entorno.
Esta página web utiliza cookies para mejorar su experiencia de usuario y para recabar estadísticas anónimas de uso. Aceptar Más información