1.0.44 • Published 9 months ago

flare-api v1.0.44

Weekly downloads
-
License
MIT
Repository
github
Last release
9 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

9 months ago

1.0.39

10 months ago

1.0.38

10 months ago

1.0.40

10 months ago

1.0.43

9 months ago

1.0.42

9 months ago

1.0.41

10 months ago

1.0.37

10 months ago

1.0.29

10 months ago

1.0.28

10 months ago

1.0.33

10 months ago

1.0.32

10 months ago

1.0.31

10 months ago

1.0.30

10 months ago

1.0.36

10 months ago

1.0.35

10 months ago

1.0.34

10 months ago

1.0.26

10 months ago

1.0.25

10 months ago

1.0.24

10 months ago

1.0.23

10 months ago

1.0.27

10 months ago

1.0.19

10 months ago

1.0.18

10 months ago

1.0.17

10 months ago

1.0.16

10 months ago

1.0.22

10 months ago

1.0.21

10 months ago

1.0.20

10 months ago

1.0.15

10 months ago

1.0.14

10 months ago

1.0.13

10 months ago

1.0.12

10 months ago

1.0.11

10 months ago

1.0.10

10 months ago

1.0.9

10 months ago

1.0.8

10 months ago

1.0.7

10 months ago

1.0.6

10 months ago

1.0.5

10 months ago

1.0.4

10 months ago

1.0.3

10 months ago

1.0.2

10 months ago

1.0.1

10 months ago

1.0.0

10 months ago