flare-api
v1.0.44
Published
A modern, fast, and intuitive Node.js framework for building APIs
Downloads
1,437
Maintainers
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/
: Archivologger.js
para registro de eventos yswagger.config.js
para 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 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:
- Ejecuta
flareapi-cli generate swagger
para generarswagger.config.js
ensrc/utils
. - Accede a
/api-docs
para ver la documentación generada.
Ejemplo de Docker
Para desplegar la aplicación en Docker:
- Se generan automáticamente un
Dockerfile
ydocker-compose.yml
. - 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:
postgres.config.js
: Configuración básica para bases de datos PostgreSQL.graphql.config.js
: Configuración inicial para usar GraphQL en el proyecto.- 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-facebook
Caché con Redis:
npm install redis
Colas de Trabajo (RabbitMQ y Kafka):
npm install amqplib kafkajs
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:
- Haz un fork del repositorio.
- Crea una rama para tu feature (
git checkout -b feature/nueva-feature
). - Haz commit de tus cambios (
git commit -m 'Agrega una nueva feature'
). - Sube tu rama (
git push origin feature/nueva-feature
). - Abre un Pull Request.
Licencia
Este proyecto está licenciado bajo la licencia MIT.