npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

flare-api

v1.0.44

Published

A modern, fast, and intuitive Node.js framework for building APIs

Downloads

1,437

Readme

FlareApi.js

Descripción General

FlareApi.js es un framework creado para simplificar la construcción de APIs escalables y altamente configurables, ideal para desarrolladores de todos los niveles. Combinando la simplicidad de FastAPI con el poder de NestJS, y ahora, con opciones avanzadas para arquitecturas de microservicios, bases de datos en la nube, y GraphQL, FlareApi.js es una herramienta potente y flexible.

Características Clave

  • CLI Inteligente: Generación de APIs, entidades, y servicios utilizando lenguaje natural.
  • Modularidad: Organización clara con carpetas y configuraciones para controladores, servicios, entidades, autenticación y más.
  • Soporte para Microservicios: Configuración optimizada para arquitecturas de microservicios con dockerización.
  • Soporte para Bases de Datos en la Nube y GraphQL: Configuraciones listas para PostgreSQL, bases de datos en la nube y GraphQL.
  • Seguridad Completa: Configuración prediseñada de CORS, Helmet, Rate Limiting, y CSRF.
  • Documentación con Swagger: Documentación generada automáticamente para la API.
  • Caching con Redis: Mejora del rendimiento mediante almacenamiento en caché.
  • Ecosistema de Plugins: Extensibilidad con plugins populares, como OAuth, Redis, y más.

Uso

Instalación

Para instalar FlareApi.js, ejecuta:

npm install flareapi.js

Generación de la Estructura del Proyecto

Ejecuta el siguiente comando para generar la estructura base del proyecto:

flareapi-cli generate framework "NombreDelProyecto"

Este comando crea una estructura completa en la carpeta src/, incluyendo:

  • auth/: Archivos de autenticación básicos (auth.service.js, auth.controller.js).
  • config/: Configuraciones para seguridad, ORM, bases de datos en la nube, y GraphQL (rateLimit.config.js, cors.config.js, compression.config.js, csrf.config.js, sequelize.config.js, mongoose.config.js, redis.config.js, graphql.config.js, postgres.config.js).
  • controllers/, entities/, services/: Archivos generados automáticamente.
  • middleware/: Middleware de manejo de errores.
  • tests/: Utilidades de prueba (testUtils.js).
  • utils/: Archivo logger.js para registro de eventos y swagger.config.js para documentación (generado con flareapi-cli generate swagger).
  • sap/: Carpeta con configuraciones y módulos para integración avanzada con SAP.

Configuración para Microservicios

Para proyectos basados en microservicios, puedes ejecutar el siguiente comando:

flareapi-cli generate microservices

Este comando crea una estructura adicional en la raíz del proyecto con carpetas especializadas como microservices/, services/, y configuración de comunicación entre servicios (con RabbitMQ, Kafka, o HTTP).

Ejemplo de configuración en microservices/:

  • /services/authService: Servicio de autenticación independiente.
  • /services/userService: Servicio para gestión de usuarios.
  • /services/dataService: Servicio dedicado a la lógica de datos o transacciones.
  • docker-compose.yml: Configuración optimizada para ejecutar cada microservicio en contenedores Docker independientes.

Archivo de Ayuda (HELP.md)

Al generar la estructura, se crea un archivo HELP.md en el directorio raíz. Este archivo incluye:

  • Dependencias necesarias para producción y desarrollo, con comandos de instalación en npm y yarn.
  • Explicación de los archivos de configuración generados y cómo integrarlos.
  • Comandos de ejecución rápida para iniciar el servidor en modo desarrollo y producción.

Comandos del CLI

| Comando | Descripción | |------------------------------------------|------------------------------------------------------------------------------------------------------| | flareapi-cli generate framework <name> | Genera una estructura completa del proyecto. | | flareapi-cli generate microservices | Configuración de arquitectura de microservicios con servicios independientes. | | flareapi-cli generate controller <entity> | Crea un controlador para una entidad especificada. | | flareapi-cli generate service <entity> | Crea un servicio para una entidad especificada. | | flareapi-cli generate entity <entity> | Crea una entidad con los campos definidos. | | flareapi-cli generate backoffice <entity> | Genera un backoffice básico para una entidad. | | flareapi-cli generate swagger | Crea la configuración de Swagger para documentar la API. | | flareapi-cli assistant "<natural language description>" | Usa el asistente basado en IA para generar APIs completas a partir de descripciones. | | flareapi-cli generate sap | Genera la estructura completa de integración con SAP. |

Configuraciones de Seguridad y Optimización

  • Rate Limiting (rateLimit.config.js): Limita solicitudes por IP para evitar ataques.
  • CSRF Protection (csrf.config.js): Protección contra ataques CSRF.
  • CORS (cors.config.js) y Helmet (helmet.config.js): Protección contra vulnerabilidades comunes.
  • Compresión HTTP (compression.config.js): Optimiza la respuesta y reduce el tiempo de carga.

Documentación de API con Swagger

Para habilitar la documentación automática de la API:

  1. Ejecuta flareapi-cli generate swagger para generar swagger.config.js en src/utils.
  2. Accede a /api-docs para ver la documentación generada.

Ejemplo de Docker

Para desplegar la aplicación en Docker:

  1. Se generan automáticamente un Dockerfile y docker-compose.yml.
  2. Ejecuta docker-compose up para iniciar la aplicación y la base de datos en contenedores separados.

Configuración de Bases de Datos y GraphQL

FlareApi.js permite configuraciones avanzadas con bases de datos y GraphQL:

  1. postgres.config.js: Configuración básica para bases de datos PostgreSQL.
  2. graphql.config.js: Configuración inicial para usar GraphQL en el proyecto.
  3. Conexión a Bases de Datos en la Nube: Ajustes y ejemplos de variables de entorno para bases de datos en la nube.

Plugins Adicionales Disponibles

FlareApi.js permite la extensión mediante plugins de uso común:

  1. Autenticación Avanzada (OAuth):

    npm install passport passport-google-oauth20 passport-facebook
  2. Caché con Redis:

    npm install redis
  3. Colas de Trabajo (RabbitMQ y Kafka):

    npm install amqplib kafkajs
  4. Logging y Monitorización:

    npm install morgan

Integración con SAP

Para la integración con SAP, se genera una carpeta sap/ con los siguientes archivos y configuraciones avanzadas:

  • sap.config.js: Configuración general de la conexión a SAP.
  • auth.config.js: Configuración para autenticación OAuth/SAML.
  • scp.config.js: Configuración para SAP Cloud Platform.
  • errorHandler.js: Gestión centralizada de errores.
  • fioriEndpoints.js: Endpoints para SAP Fiori/UI5.
  • monitor.config.js: Configuración de monitoreo de SAP.
  • utils/connection.js: Módulo centralizado de conexión a SAP.
  • utils/requestHandler.js: Manejador de solicitudes para SAP.
  • utils/responseParser.js: Parser de respuestas de SAP.
  • tests/: Pruebas unitarias para la integración con SAP.

Contribuir

Para contribuir:

  1. Haz un fork del repositorio.
  2. Crea una rama para tu feature (git checkout -b feature/nueva-feature).
  3. Haz commit de tus cambios (git commit -m 'Agrega una nueva feature').
  4. Sube tu rama (git push origin feature/nueva-feature).
  5. Abre un Pull Request.

Licencia

Este proyecto está licenciado bajo la licencia MIT.