flare-api v1.0.44
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.jsGeneració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/: Archivologger.jspara registro de eventos yswagger.config.jspara documentación (generado conflareapi-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 microservicesEste 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:
Autenticación Avanzada (OAuth):
npm install passport passport-google-oauth20 passport-facebookCaché con Redis:
npm install redisColas de Trabajo (RabbitMQ y Kafka):
npm install amqplib kafkajsLogging 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.
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago