Header Ads Widget

Ticker

6/recent/ticker-posts

13 marcos de trabajo Node.js para crear API web

 

13-Node.Js-Frameworks-to-Build-Web-APIs

Node.js es una de las tecnologías más utilizadas en el espacio web. Según la encuesta de StackOverflow 2017 , el 47,1% de los encuestados que utilizaron marcos y bibliotecas utilizaron Node.js como tecnología principal.

Este amor no es realmente una sorpresa: eficiente, liviano y poderoso, Node.js incluye npm , el ecosistema de bibliotecas de código abierto más grande del mundo, que brinda una extensibilidad que hay que ver para creer. Con todas estas opciones, pensamos que sería una buena idea mirar algunos de los mejores marcos, plataformas y bibliotecas actuales que se ofrecen para crear API web .

1: Sails.js

Marco MVC en tiempo real para Node.js

Sails.js es un marco MVC en tiempo real basado en Express y Socket.io. Esto significa que Sails es compatible con este tipo de proyectos, lo que agrega extensibilidad a muchos proyectos actuales. Sails.js también es muy fácil de implementar y es relativamente eficiente para el tamaño de la base de código que tiene.

Si bien Waterline ORM en el backend permite almacenar datos en prácticamente cualquier almacén de datos que desee, la implementación en sí puede llevar a un almacenamiento de datos inflado. Muchos usuarios informan que la población multinivel es extremadamente difícil, y esto se refleja en su ruta de desarrollo y recursos de retroalimentación. Los usuarios a menudo solicitan Deep Population como una nueva característica, pero aún no se ha abordado.

Si Sails.js implementara Deep Population, sería una obviedad para los proyectos Express. Tal como está ahora, es apropiado para la mayoría de los proyectos fuera de la empresa y los entornos de producción de alto volumen.

2: Express.js

Marco web rápido, sencillo y minimalista para Node.js

Express es, en muchos sentidos, el progenitor de muchas soluciones en esta lista. Inicialmente liviano en su configuración básica, Express está diseñado para funcionar esencialmente como middleware y como un marco de enrutamiento . De hecho, lo hace muy bien, por lo que se ha convertido en parte de la siempre popular pila MEAN para Node.js.

Sin embargo, el hecho de que Express no se preocupe por la independencia del código es un gran inconveniente. Una vez que su código está escrito, está escrito, y cambiarlo de manera significativa puede aumentar la implementación y crear una experiencia terrible para el desarrollador . Agregue la falta de manejo de errores significativos  y obtendrá un sistema que, si bien es excelente para su tiempo y sigue siendo efectivo en algunos casos de uso, es difícil de recomendar como una implementación única.

Express se puede resumir mejor con su propia marca: “marco minimalista y sin opiniones”. Por un lado, eso es algo bueno; por otro lado, esta falta de soluciones definidas y aceptadas puede agregar niveles dramáticos de complejidad y dar como resultado proyectos que son difíciles de mantener.

Dicho esto, Express todavía impulsa muchas de las implementaciones en el mundo de Node.js y, de hecho, está detrás de varias de las implementaciones de alto perfil en esta pieza. Por esa razón, no debe descartarse como una opción legítima .

3: Hapi.js

Un marco rico para crear aplicaciones y servicios

Hapi.js es uno de los  marcos más centrados en la empresa en esta pieza, y eso tiene sentido: Hapi.js fue creado por WalMart y aún lo mantiene Inicialmente se creó en preparación para el tráfico extremo en línea de su evento Black Friday. Cuando WalMart se estaba preparando para este tráfico, notaron los problemas clave con Express que ya hemos discutido, en particular que, a medida que la aplicación crecía tanto en tamaño como en demanda, se volvía extremadamente difícil de manejar y su solución basada en Express lo hacía extremadamente difícil. para dividir en trozos más pequeños.

Hapi.js fue diseñado para solucionar este problema, y ​​lo hizo mediante la implementación de una arquitectura basada en complementos . Esto permitió a WalMart y otros adoptantes del marco revisar sus sistemas, incluso reemplazando aspectos completos de su funcionalidad, sin mayores problemas.

Aunque originalmente se basó en Express, desde entonces se ha alejado de él y se ha convertido en su propia solución. Si bien el sistema de complementos fue la solución perfecta para el problema de WalMart, esta complejidad suele ser excesiva para las organizaciones y soluciones más pequeñas. También debe tenerse en cuenta que Hapi.js todavía está supervisado por WalMart, quien es responsable de las principales adiciones a su base de código. Si bien esto no es en sí mismo algo malo, aquellos que se centran en gran medida en soluciones no corporativas de código abierto pueden encontrar esto poco atractivo y deben considerar ese aspecto antes de la implementación.

4: actionHero.js

Servidor de API node.js reutilizable, escalable y rápido para aplicaciones sin estado y con estado

ActionHero.js es un muy destacado marco que ofrece una variedad de funciones avanzadas. Uno de los mayores puntos de venta es el hecho de que admite tareas retrasadas . Lo que esto significa en la práctica es que una tarea podría construirse para ejecutarse en cualquier momento desde un dispositivo dado, haciéndola portátil en una amplia variedad de implementaciones.

Además, actionHero es una implementación liviana y, como resultado de su construcción liviana y relativa simplicidad, también es extremadamente rápido . Esto, además de su enrutamiento declarativo y muy fácil de entender, lo hace ideal para aplicaciones donde se necesita una función para impulsar un sistema complejo sin agregar complejidad.

Sin embargo, hay aspectos negativos. actionHero es relativamente nuevo, por lo que no se ha ejecutado con el escurridor que tienen otras implementaciones y marcos. También atiende de manera relativamente transparente a los microservicios, lo que significa que no es necesariamente la mejor opción para soluciones empresariales o para el desarrollo rápido y la creación de prototipos de sistemas API completos.

5: Total.js

Total.js es un marco del lado del servidor con todas las funciones. Desarrollo rápido, bajo costo de mantenimiento, estabilidad sólida

Total.js, como muchos en esta lista, se comercializa a sí mismo como un " marco con todas las funciones ", aunque con un enfoque del lado del servidor . Total.js es compatible con la arquitectura MVC, el código isomórfico, el procesamiento de imágenes, el enrutamiento RESTful y más; es básicamente todo lo que desea en un marco.

Un gran punto de venta para Total.js es el hecho de que cumple y es totalmente compatible con RFC 6455 y, por lo tanto, con WebSockets . Esto, junto con su capacidad para fusionar archivos .js y .css, empuja a Total.js en la dirección a la que la industria Node.js se ha estado desplazando por un tiempo, colocando las API que se implementan dentro de Total.js a la vanguardia de implementaciones de vanguardia .

Total.js debería ser una obviedad para la mayoría de las aplicaciones, pero el hecho de que sea una plataforma de pila completa significa que incorporarlo dentro de un proyecto existente es difícil de vender. Pasar de una plataforma a otra es difícil, especialmente cuando es posible que ya dependa de otro marco.

6: LoopBack

LoopBack es un marco Node.js de código abierto y altamente extensible

LoopBack es un marco de backend con todas las funciones que fue diseñado desde cero para conectar aplicaciones a datos mediante API. Al empaquetar un explorador de API , una variedad de generadores, SDK en Angular, Browser, Node.js, iOS, Android y Xamarin, e implementar una variedad de generadores de código , LoopBack es apropiado para una amplia gama de proyectos más pequeños e implementaciones empresariales. .

Además, LoopBack cuenta con una cantidad impresionante de extensiones , integraciones de bases de datos y modelos integrados. Esto se combina con una documentación extensa y útil. Desafortunadamente, necesitará esa documentación. Si bien LoopBack ha simplificado algunos aspectos de su base de código, todavía tiene una curva de aprendizaje bastante empinada debido a la complejidad de la solución y las numerosas partes interactivas.

Cabe señalar aquí que, aunque LoopBack todavía está en desarrollo, los desarrolladores se han asociado con IBM para crear IBM API Connect . Aprovechando los éxitos del código abierto de LoopBack, API Connect ofrece una gama de herramientas que promete facilitar el desarrollo. Si bien hay muchas características prometidas, pero aún no integradas, el desarrollo de IBM API Connect y el futuro que promete hacen que la integración de LoopBack sea un argumento mucho más sólido.

7: meteorito

Una plataforma JavaScript de pila completa para desarrollar aplicaciones móviles y web modernas

Meteor es una plataforma y un marco de código abierto de pila completa que tiene como objetivo ofrecer “ un conjunto clave de tecnologías para crear aplicaciones reactivas para clientes conectados, una herramienta de compilación y un conjunto seleccionado de paquetes de Node.js y la comunidad general de JavaScript ”. Meteor está centrado en JavaScript y promociona el beneficio de usar un lenguaje singular en JavaScript en todos los entornos. Podría decirse que, si bien esto puede ser limitante, también puede negar los problemas de idiomas cruzados que los desarrolladores pueden encontrar en el desarrollo moderno de múltiples dispositivos.

Uno de los principales atractivos de Meteor es el hecho de que utiliza los llamados " datos en el cable ". Esto significa que Meteor en realidad no procesa los datos en sí, sino que elige transmitir los datos para convertirlos y procesarlos en el cliente. Esto significa que es extremadamente extensible y flexible . Además, Meteor utiliza la inserción de código en caliente , lo que permite que todos los clientes conectados al servicio obtengan actualizaciones y actualizaciones automáticas de código.

La única gran falla que tiene Meteor es que no hay una solución incorporada actual para la representación de vistas del lado del servidor. Si bien existe un complemento de terceros para esto, y hay planes para implementarlo por completo, la falta de una solución incorporada significa que el SEO puede verse afectado negativamente en una instalación predeterminada, lo que requiere capital inicial adicional.

8: restaurar

Un marco de servicio web Node.js optimizado para crear servicios web RESTful semánticamente correctos

Restify es una solución muy popular para las API REST en el mercado actual. Esto es por una buena razón: restify cuenta con soporte para DTrace , ha incorporado limitaciones y, en general, es bastante potente. Restify es esencialmente Express lite, pero con implementaciones específicas aceptadas. Esto significa que hay menos problemas con el mantenimiento del proyecto a largo plazo.

Desafortunadamente, Restify es superado con bastante facilidad por Express en términos de rendimiento . Una y otra vez, las API de restify han mostrado una función de servidor reducida para grandes flujos de tráfico y alta demanda, lo que da como resultado una implementación que funciona muy bien a primera vista, pero palidece bajo una gran carga. Teniendo en cuenta que el objetivo final de cualquier proveedor de API es una gran carga de tráfico , restify debe implementarse como parte de una solución que enfatiza demasiado la eficiencia de la carga o debe cambiarse por Express por completo.

9: Moleculer

Marco de microservicios rápido y potente para NodeJS.

Moleculer es un marco extensible basado en bibliotecas para Node.js que está diseñado de manera inmediata para estar orientado al servicio completo . Para ello, proporciona una variedad de módulos integrados, incluidos el almacenamiento en caché y el transporte, que ofrece una amplia gama de funciones de una manera altamente extensible y modificable.

Uno de los principales puntos de venta de Moleculer, un punto de venta que de hecho aparece con orgullo en su documentación, es que Moleculer es tolerante a fallas e incluye un equilibrador de carga y un disyuntor. Esta es una gran adición para un marco de Node.js, y es especialmente necesaria dadas las crecientes demandas de tráfico de la web moderna.

Con todo eso en mente, Moleculer es algo limitado en comparación con algo como Express o Koa. Se podría argumentar que Molecular está a medio camino entre la sobreabundancia de opciones y las opciones limitadas de ofertas divergentes; en consecuencia, una configuración dependerá de las limitaciones de las API más pequeñas o de las mayores demandas de una API empresarial.

10: Koa.js

Una base más pequeña, más expresiva y más sólida para aplicaciones web y API.

Koa es un marco de desarrollo web del lado del servidor construido sobre Node.js con la idea de aprovechar los generadores . Este concepto permite la generación rápida de aplicaciones web y API REST, al menos en teoría. La solución es bastante modular, casi al nivel de Hapi.js, y es extensible en una variedad de formas únicas.

También debe mencionarse que Koa.js es el sucesor espiritual, y algunos lo considerarían “oficial”, de Express.js. Esto se debe al hecho de que Koa fue creado por los autores originales de Express, y diseñado específicamente para reemplazar y solucionar todos los problemas que tiene Express. Todo lo que hace Express, Koa está destinado a hacerlo de una manera más elegante.

Dicho esto, Koa requiere un conocimiento previo significativo de generadores y promesas y, por lo tanto, requiere un capital mucho mayor para la puesta en marcha que otras soluciones. Es probable que Koa sea el lugar al que migrará el espacio de API basado en Express y, por esa razón, es difícil adoptar Express sobre Koa, excepto en ciertos casos extremos.

11: Frisby

El marco de prueba de API REST más fácil y rápido que existe

Frisby es un marco de prueba de un solo servicio . Si bien los marcos de un solo servicio, que es un marco que solo hace una sola cosa, a menudo se consideran negativos, Frisby maneja las pruebas de una manera tan rápida y efectiva que merece una revisión adicional dentro de muchas implementaciones.

Desafortunadamente, la velocidad es uno de los únicos beneficios de los que se jacta Frisby. La documentación para Frisby es algo deficiente, y la documentación disponible generalmente está incompleta o falta. La sintaxis de Frisby también es bastante diferente de otras implementaciones, lo que rápidamente puede hacer que se sienta ajeno a un nuevo usuario.

Finalmente, y quizás lo más importante, Frisby no admite la reversión de transacciones . La base de datos tendrá que crear un nuevo registro para cada prueba, lo que en muchos casos está bien ; sin embargo, cuando se usa en un caso de IoT o esbelto, donde las bases de datos pequeñas y el mantenimiento de registros ágil es un requisito, Frisby se vuelve difícil de defender.

Dicho esto, si todo lo que necesita es una plataforma de prueba rápida y tiene el espacio de la base de datos tan libre, así como un desarrollador familiarizado con la sintaxis, Frisby es una buena opción.

12: faceta

Desarrollo rápido de API JSON.

Facet se autodenomina menos como un marco y más como una “ plataforma ”. Esto tiene sentido, dado que su propósito declarado es proporcionarClases de utilidades comunes extensibles para un rápido desarrollo de API JSON " Debido a este enfoque relativamente específico, Facet se centra en gran medida en incluir herramientas para facilitar el desarrollo.

En primer lugar, facet es completamente agnóstico : esto se logra proporcionando abstracción de código específico de middleware y asegurando la funcionalidad CRUD integrada. Al empaquetar todo y proporcionar una capa de interacción para la API, esto significa que facet es una herramienta realmente buena para el desarrollo a largo plazo en una variedad de implementaciones y marcos.

Desafortunadamente, la faceta sigue siendo extremadamente pequeña y su desarrollo parece haberse estancado: la última confirmación de GitHub fue en 2014. La falta de documentación completa en su sitio oficial y la ausencia de una cantidad significativa de código de ejemplo significa que, si era un proveedor adoptar faceta, probablemente tendrían una batalla cuesta arriba para descubrir las complejidades del código fuente. La falta de comunidad , la falta de ciertas características como el registro y la relativa simplicidad del código base dificultan la defensa de un proyecto establecido y exigente.

13: Gugamarket

Gugamarket es un marco de API REST completo.

Gugamarket es un marco de API REST de pila completa que es difícil de resumir debido a cómo está diseñado. Esencialmente, Gugamarket es lo que usted hace de él: un mercado con todas las funciones de implementaciones que uno puede construir a su gusto.

Gugamarket tiene sus deficiencias y sus puntos fuertes, dependiendo de cómo esté configurado y de lo que haga. Lo que se podría decir es que Gugamarket en general admite y ofrece integraciones con Swagger, Express y Mocha, y que las implementaciones que ofrece están bastante bien hechas.

Si la idea de una solución a la carta para los marcos de API es atractiva, es algo que los desarrolladores deberían comprobar.

Pensamientos finales

Node.js es extremadamente poderoso. Este poder solo se multiplica considerando la amplia gama de opciones que tienen los proveedores en términos de marcos y plataformas, lo que abre a los proveedores a una gama extrema de funcionalidades, implementaciones, tamaños de base de código y eficiencias. Si bien es difícil recomendar uno sobre otro dado el hecho de que los diseños y conceptos de proyectos son tan amplios, el exceso de opciones que se ofrecen significa que para casi cualquier proyecto, es probable que exista una solución sólida.

¿Cuál crees que es el mejor marco general de Node.js ? Háganos saber en los comentarios a continuación, y asegúrese de revisar nuestras otras piezas aquí en el blog de APIs nórdicas. ¿No usas Node.JS? Lea nuestros artículos sobre frameworks para Go y PHP .

 

Publicar un comentario

0 Comentarios