1.0.44 • Published 8 months ago

flare-api v1.0.44

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

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

ComandoDescripción
flareapi-cli generate framework <name>Genera una estructura completa del proyecto.
flareapi-cli generate microservicesConfiguració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 swaggerCrea 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 sapGenera 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.

1.0.44

8 months ago

1.0.39

9 months ago

1.0.38

9 months ago

1.0.40

9 months ago

1.0.43

9 months ago

1.0.42

9 months ago

1.0.41

9 months ago

1.0.37

9 months ago

1.0.29

9 months ago

1.0.28

9 months ago

1.0.33

9 months ago

1.0.32

9 months ago

1.0.31

9 months ago

1.0.30

9 months ago

1.0.36

9 months ago

1.0.35

9 months ago

1.0.34

9 months ago

1.0.26

9 months ago

1.0.25

9 months ago

1.0.24

9 months ago

1.0.23

9 months ago

1.0.27

9 months ago

1.0.19

9 months ago

1.0.18

9 months ago

1.0.17

9 months ago

1.0.16

9 months ago

1.0.22

9 months ago

1.0.21

9 months ago

1.0.20

9 months ago

1.0.15

9 months ago

1.0.14

9 months ago

1.0.13

9 months ago

1.0.12

9 months ago

1.0.11

9 months ago

1.0.10

9 months ago

1.0.9

9 months ago

1.0.8

9 months ago

1.0.7

9 months ago

1.0.6

9 months ago

1.0.5

9 months ago

1.0.4

9 months ago

1.0.3

9 months ago

1.0.2

9 months ago

1.0.1

9 months ago

1.0.0

9 months ago