¡Cree aplicaciones modernas impulsadas por API!
Las API son similares a las interfaces de usuario, con la única diferencia de que un usuario es una máquina o software.
Entendamos el enfoque de diseño de API primero y por qué tiene sentido seguirlo. También nos centraremos un poco en JavaScript y su popularidad y, finalmente, analizaremos los marcos de JavaScript de tendencia superior para crear API y microservicios.
Enfoque de primera API
Todos hemos escuchado el término llamado primer diseño de API o simplemente API. En realidad, el término primer diseño de API se hizo popular después de que la industria comenzara a mencionar el término aplicación nativa de la nube. Durante un período de tiempo desde el desarrollo de una aplicación monolítica, los programadores comenzaron a dividir estas aplicaciones en microservicios.

Todas las interacciones con estos microservicios desde dispositivos web, Android o iOS deben realizarse a través de API. Por lo tanto, el diseño de estas API juega un papel importante a la hora de proporcionar datos a estas interfaces. Esto significa que los microservicios tienen solo un medio para comunicarse que no son más que API.
Por lo tanto, el primer principio de diseño de API entra aquí en escena. Primero, debemos considerar diseñar nuestra API antes de escribir la implementación para nuestros microservicios / servicios de backend.
Recuerde: las API son impulsores del negocio, así que desarrollelas al comienzo del desarrollo de un sistema.
En el enfoque de diseño de API primero, una API se considera un ciudadano de primera clase. Resumir las declaraciones anteriores nos dará los siguientes tres puntos clave, que se pueden tomar como un principio del primer enfoque de API.
- API es la primera interfaz de usuario de nuestra aplicación.
- Primero viene la API y luego la aplicación.
- Se describe la API (y tal vez incluso se autodescribe)
Hay muchas empresas que utilizan primeros enfoques de API, como Twillio, NETFLIX, Stripe, Algolia, SendGrid, Etsy, Adobe, Amazon, y muchos más.
Amazon fue una de las primeras empresas que instruyó a sus empleados a utilizar este enfoque. La importancia de este enfoque podría entenderse con una incidencia cuando Jeff Bezos(CEO de Amazon) emitió un mandato llamado Mandato de Bezos(en algún momento alrededor de 2002), con una advertencia cualquiera que no siga este proceso será despedido.
Beneficios del enfoque de API primero
¡Mucho!
Los siguientes son algunos de ellos.
- Empresa reutilizable / componible
- Permite el desarrollo paralelo
- Reduce el costo total durante la vida útil del proyecto.
- Reduce el riesgo de fallas
- Un crecimiento más rápido
- Libertad de limitaciones
Ahora exploremos uno de los poderosos lenguajes de la web, que nos ayuda a implementar el enfoque mencionado anteriormente.
JavaScript: un lenguaje de la web

JavaScript es uno de los lenguajes más importantes de hoy y de mañana.
JavaScript es un lenguaje de secuencias de comandos del lado del cliente interpretado de alto nivel. Se utiliza para hacer que las páginas web sean más interactivas. Nos permite implementar diseños complejos y hermosos. JavaScript es un lenguaje de secuencias de comandos basado en objetos que admite encapsulación, polimorfismo y, en cierta medida, también herencia.
Además, no es necesario compilarlo, a diferencia de C, C ++ y Java.
JavaScript se puede ejecutar en el navegador y en el servidor y cualquier dispositivo con un motor de JavaScript.
Es bueno mencionar que JavaScript no tiene nada que ver con Java. Entonces la pregunta es, ¿por qué se llama JavaScript? En realidad, cuando JavaScript se lanzó inicialmente, se llamó Moca; eso luego fue renombrado a guion en vivo y luego a JavaScript cuando Netscape y SUN firmaron un acuerdo de licencia.
JavaScript se utiliza en el desarrollo de casi todos los tipos de productos y aplicaciones web, como relojes inteligentes, juegos, sitios web, aplicaciones móviles y web. Algunos de los sitios web más populares como Google, Facebook, Netflix, Amazon utilizan JavaScript para crear sus productos.
¿Está limitado al lado del cliente?
JavaScript se diseñó inicialmente para ejecutarse en un navegador como lenguaje de programación del lado del cliente. Pero ahora ha evolucionado mucho y es más de lo que solía ser. Además, JavaScript no es solo el lenguaje del lado del cliente sino también Frameworks basados en JavaScript también se utilizan para realizar la programación del lado del servidor.
Un ejemplo de tal marco es NodeJs.

Este no es el final de las capacidades de JavaScript. Además de usarse como lado del cliente y del lado del servidor, también se puede usar para diseñar una aplicación con una base de código única y ejecutarla en un dispositivo móvil (Android, iOS) y en la web.
Un ejemplo de tal marco es ReactJs.
Popularidad de JavaScript
JavaScript es posiblemente uno de los lenguajes más importantes de la actualidad.
El auge de la web ha llevado a JavaScript a lugares donde nunca se concibió. Actualmente, tenemos más de 100 lenguajes de programación, y cada año se introducen nuevos lenguajes. Entre estos, algunos lenguajes potentes traen cambios rápidos en el mercado, y JavaScript es definitivamente uno.
Siempre ha estado en la lista de lenguajes de programación populares. De acuerdo a StackOverflow, JavaScript ha sido el lenguaje de programación más popular y utilizado.

¿Sabes?
Casi el 70% de los desarrolladores profesionales que respondieron a la encuesta de Stack Overflow de 2020 codificada en JavaScript.
Ahora echemos un vistazo a algunos de los marcos de JavaScript más populares para crear API y microservicios.
Hapi

Hapi es un marco de JavaScript simple, seguro y de código abierto. Se utiliza para crear aplicaciones potentes y escalables con una sobrecarga mínima. Originalmente se desarrolló para manejar la escala Black Friday de Walmart, pero ahora Hapi sigue siendo la opción probada para las necesidades de backend de nivel empresarial.
Empresas como Beats Music, Vrbo, Conde Nast, AuthO, Brave, y muchos más están usando Hapi y están satisfechos con él.
El soporte gratuito está siempre disponible en el GitHub. Sin embargo, para una respuesta más rápida, únase al Canal flojo - es el lugar donde muchos miembros de la comunidad se juntan y se ayudan entre sí.
Restify

Restificar está optimizado para la construcción semánticamente correcto Servicios web RESTful listos para su uso en producción a escala. Cuando dice semánticamente correcto, significa mantenerse fiel a las especificaciones, que fue uno de los principales objetivos del equipo del proyecto Restify.
Optimiza la introspección y el rendimiento y se utiliza en la mayoría de las implementaciones más grandes de Node.js. Una de las características más interesantes de Restify es que crea automáticamente sondas de DTrace para usted cada vez que agrega una nueva ruta / controlador. En realidad, hay tres clientes separados enviados en Restify:
- ClienteJson: envía y espera la aplicación / json
- Cliente de cadena: envía la solicitud codificada en URL y espera texto / sin formato
- Cliente Http: envoltura delgada sobre las bibliotecas HTTP / HTTPS del nodo
Se puede encontrar la guía de desarrollo detallada aquí.
Restify es utilizado por algunas de las empresas más respetadas de la industria como Netflix, Joyent, Pinterest para impulsar algunas de las implementaciones más grandes.
ExpressJS
ExpressJs es un proyecto de la Fundación OpenJS.
Debido a su solidez, muchos frameworks populares (como Feathers, Kraken, velas, cometas, NestJs, etc.) se basan en Express. Es un marco de aplicación web mínimo y flexible basado en node.js que proporciona un conjunto sólido de funciones para aplicaciones web y móviles.
Dado que proporciona una capa encima de Node.js, podemos acceder de manera eficiente a Funciones de JavaScript. Es adecuado para escribir aplicaciones con renderizado de servidor porque admite muchos motores de plantilla (como pug y manillar). Para el desarrollo de API, contiene controladores intermedios y muchos métodos de utilidad / servicio HTTP.
SailsJS

SailsJS es una estructura MVC construida bajo la compañía Sails con sede en Austin, TX. Fue desarrollado por Mike McNeil para ayudar a su equipo a crear proyectos escalables de Node.js para clientes empresariales y de inicio. Desde su lanzamiento en 2012, Sails se ha convertido en uno de los frameworks de aplicaciones web más utilizados a nivel mundial.
Es un peso ligero que se coloca encima de Express. Es compatible con cualquier front-end: Angular, React, iOS, Android. Sails afirma estar integrado con cualquier base de datos a través de su poderoso ORM llamado Waterline. Utiliza Express para manejar solicitudes HTTP y envuelve socket.io para administrar WebSockets.
Action Hero

Heroe de accion es un servidor API de transporte múltiple con capacidades de clúster integradas y tareas retrasadas. El objetivo de Actionhero es crear un conjunto de herramientas fácil de usar para hacer Reutilizable & escalable API para HTTP, WebSockets y más. Fue construido desde cero para incluir todas las características que esperamos de un marco API moderno.
El tipo de carga de trabajo en la que Actionhero sobresale implica producir y consumir API, almacenar y recuperar datos de bases de datos, modificar archivos y trabajos similares.
Actionhero tiene 5 conceptos clave que componen cada aplicación: Acciones, tareas, Inicializadores, Chat y Servidores.

LoopBack

Bucle Atrás es un marco Node.js y TypeScript de código abierto altamente extensible basado en Express. Nos permite crear rápidamente API y microservicios compuestos por sistemas backend como bases de datos y servicios SOAP o REST.
Es un nuevo y mejorado modelo de programación con Dependency Injection y nuevos conceptos como Componentes, Mixins, Repositories, etc., que lo hacen el más extensible. LoopBack nos permite crear una interfaz GraphQL para cualquier API REST usando OpenAPI-to-GraphQL.
Podemos comenzar con Loopback en poco tiempo con solo seguir sus pasos en consulte la guía de inicio. Su documentación está categorizada en base a cuatro cuadrantes, y esos son,
- Orientado al aprendizaje: Los tutoriales proporcionan lecciones prácticas en las que los usuarios pueden aprender el marco mediante la práctica.
- Orientado a problemas: Las guías prácticas proporcionan recetas para resolver objetivos específicos que puede encontrar al crear un proyecto LoopBack.
- Orientado a la comprensión: Las páginas de conceptos explican los conceptos de arquitectura, una visión más amplia y un conocimiento más profundo sobre el marco.
- Orientado a la información: Las guías de referencia proporcionan una descripción técnica de la maquinaria y cómo utilizarla.
Empresas como Ve papi, Symantec, Sapient, Fundrails, ShoppinPal y WhiteBoard están utilizando LoopBack de forma extensiva.
FeathersJs

Plumas es un conjunto de herramientas y un patrón de arquitectura que facilitan la creación de API REST escalables y aplicaciones en tiempo real. Podemos construir prototipos en minutos y aplicaciones listas para producción en días. Feathers puede interactuar con cualquier tecnología de back-end, admitir más de una docena de bases de datos y trabajar con cualquier tecnología de front-end como React, VueJS, Angular, React Native, Android o iOS.
Para comenzar con la primera aplicación Feathers, siga las guía de inicio rápido. Si está atascado o tiene una pregunta, puede obtener ayuda en sus diferentes canales, incluidos Slack, GitHub, StackOverflow, Telegram, etc.
KoaJS
El equipo detrás de Express diseña koa. Su objetivo es ser una base más pequeña, más expresiva y sólida para aplicaciones web y API. Koa no incluye ningún middleware en su núcleo y proporciona un elegante conjunto de métodos que hacen que los servidores de escritura sean rápidos y agradables.
Al aprovechar las funciones asincrónicas, Koa nos permite deshacernos de las devoluciones de llamada y aumentar considerablemente el manejo de errores. Comience en tres comandos como se muestra a continuación.
$ nvm install 7
$ npm i koa
$ node my-koa-app.js
AdonisJS

AdonisJs es un marco MVC de Node.js que se mantiene y respalda por un comunidad vibrante. Ofrece un ecosistema estable para escribir aplicaciones de servidor sid para que pueda concentrarse en las necesidades comerciales sobre la finalización de qué paquete elegir o no. Es como cualquier otro módulo npm con algo de código en la parte superior para funcionar sin problemas con las aplicaciones de AdonisJ.
No hay requisitos previos estrictos para usar AdonisJs, pero tener un conocimiento convencional de JavaScript, programación Async y Node.js es muy útil. Asegúrese de leer el instalación guía.
En caso de consultas o errores, uno puede comunicarse con el equipo de AdonisJs a través de los siguientes canales.
- Github: Comparta errores o cree solicitudes de funciones.
- Discord: Únase al servidor de Discord para chatear instantáneamente con otros miembros de la comunidad.
- Twitter: Manténgase en contacto con el progreso realizado cada día y manténgase informado sobre proyectos increíbles proporcionados por la comunidad.
TotalJS

Total.js La plataforma es una colección de bibliotecas, paquetes, componentes de UI, prácticas y productos completos escritos en JavaScript. La base de la plataforma es un marco del lado del servidor llamado marco Total.js y una biblioteca del lado del cliente llamada jComponent.
Ambas partes fueron escritas desde cero.
En la mayoría de los casos, no necesitamos usar ninguna dependencia con la plataforma Total.js, porque contiene todo lo que necesitamos para el desarrollo.
Toda la plataforma Total.js: productos, bibliotecas, módulos, paquetes y componentes de interfaz de usuario son de código abierto con licencia MIT.
Moleculer

molecular es un marco de microservicios rápido, moderno y potente para Node.js. Proporciona muchas funciones para crear y administrar sus microservicios, como:
- Solución basada en promesas (compatible con async / await)
- concepto de solicitud-respuesta
- apoyar la arquitectura impulsada por eventos con equilibrio
- registro de servicios integrado y descubrimiento dinámico de servicios
- solicitudes y eventos con equilibrio de carga (round-robin, aleatorio, uso de CPU, latencia, fragmentación)
- características de tolerancia a fallas (disyuntor, mamparo, reintento, tiempo de espera, retroceso)
- solución de almacenamiento en caché incorporada (Memory, MemoryLRU, Redis)
- registradores conectables (Consola, Archivo, Pino, Bunyan, Winston, Debug, Datadog, Log4js)
- transportadores (TCP, NATS, MQTT, Redis, NATS Streaming, Kafka, AMQP 0.9, AMQP 1.0)
- serializadores (JSON, Avro, MsgPack, Protocol Buffer, Thrift)
- arquitectura sin maestro, todos los nodos son iguales
- función de métricas incorporadas con reporteros (consola, CSV, Datadog, evento, Prometheus, StatsD)
- función de seguimiento con exportadores (Console, Datadog, Event, Jaeger, Zipkin)
Fastify
Comience su viaje con Fastify.
Fastificar está altamente enfocado en brindar la mejor experiencia de desarrollador con la menor sobrecarga y una potente arquitectura de complementos. Hapi y Express lo inspiran, y es uno de los frameworks web más rápidos de la industria.
Comience su viaje con Fastify.
npm install fastify
Proporciona un alto rendimiento y, dependiendo de la complejidad del código; puede atender hasta 30 mil solicitudes por segundo. Es completamente extensible a través de sus ganchos, complementos y decoradores.
Incluso si no es obligatorio, Fastify recomienda usar Esquema JSON para validar sus rutas y serializar sus salidas, Fastify compila internamente el esquema en una función de alto rendimiento.
Conclusión
Crear API puede ser un desafío, pero con el marco adecuado, la vida es mucho más fácil. Explore el marco mencionado anteriormente para su próxima API y Microservicios y elija el que mejor se adapte. Una vez que su API esté lista, no olvide monitorear de ellas.