Introducción a FoxServer

¿Qué es FoxServer?

FoxServer es un servidor HTTP multiservicio desarrollado en X# (un lenguaje basado en xBase que compila a .NET), diseñado para integrar aplicaciones de Visual FoxPro (VFP) con servicios web modernos. Permite crear APIs RESTful y servir contenido web estático, actuando como un puente entre el código VFP tradicional y las tecnologías actuales.

FoxServer transforma aplicaciones VFP en servicios web sin necesidad de reescribir el código, permitiendo la integración con sistemas modernos.

Con FoxServer, puedes:

  • Crear APIs RESTful para exponer datos y lógica de negocio de VFP.
  • Servir contenido web dinámico utilizando plantillas VFP.
  • Implementar microservicios para conectar con aplicaciones externas.
  • Modernizar aplicaciones legacy manteniendo la base de código existente.

Características principales

Servidor HTTP

Servidor HTTP/HTTPS

Servidor web integrado con soporte para HTTP y HTTPS, configurable según el nivel de suscripción.

API REST

API RESTful

Crea endpoints REST con soporte para JSON, manejo de parámetros y métodos HTTP (GET, POST, PUT, DELETE).

Plantillas

Motor de Plantillas VFP (en mantenimiento)

Genera contenido HTML dinámico utilizando plantillas procesadas con Visual FoxPro.

Enrutamiento

Enrutamiento Avanzado

Sistema de rutas flexible con parámetros dinámicos y caché de rutas para mayor rendimiento.

Middleware

Middleware Personalizable

Implementa lógica de pre y post procesamiento con soporte para autenticación JWT, logging y webhooks.

Seguridad

Seguridad y Licencias

Autenticación JWT, soporte CORS y un sistema de licencias basado en Patreon para diferentes niveles de acceso.

Requisitos del sistema

Componente Requisito
Visual FoxPro VFP 9.0 SP2 o superior (para backend)
Sistema Operativo Windows 7 SP1 o superior (Windows 10/11 recomendado)
.NET Framework .NET Framework 4.7.2 o superior (para el núcleo de FoxServer)
Memoria RAM Mínimo 4GB (8GB recomendado)
Espacio en disco 100MB para la instalación básica
Permisos Acceso de administrador para configuración HTTPS y bindings de puerto
Conexión a Internet Requerida para validación de licencia y actualizaciones

Arquitectura

FoxServer está diseñado con una arquitectura modular que separa las responsabilidades del servidor, integrando componentes .NET y Visual FoxPro:

Diagrama de arquitectura de FoxServer

Componentes principales

  • Núcleo HTTP (X#/.NET): Maneja las conexiones TCP/IP y el protocolo HTTP/HTTPS mediante HttpListener.
  • Router: Dirige las solicitudes a los controladores adecuados con un sistema de caché para rutas.
  • Middleware: Procesa solicitudes y respuestas en cadena (logging, autenticación JWT, webhooks).
  • Controladores VFP: Implementan la lógica de negocio en Visual FoxPro a través de COM interop.
  • Motor de Plantillas VFPTemplateEngine: Procesa plantillas VFP para generar contenido dinámico.
  • Sistema de Licencias: Gestiona niveles de acceso y límites basados en suscripciones Patreon.

Estructura básica de un controlador en FoxPro

DEFINE CLASS testapiBackend AS ApiController OLEPUBLIC
    PROCEDURE pHello(req, res) HELP "GET: hello public"
        LOCAL loRes
        loRes = THIS.NewObject("status,data,message")
        loRes.status = "ok"
        loRes.data = NULL
        loRes.message = "VFP API Server is running"
        res.Status(200).Json(THIS.ToJson(loRes))
    ENDPROC
ENDDEFINE

Casos de uso

APIs para aplicaciones modernas

Exponer datos y lógica de negocio de VFP a aplicaciones móviles o web mediante APIs RESTful.

Caso de uso: API para móviles

Modernización de aplicaciones VFP

Transformar aplicaciones de escritorio VFP en servicios web sin reescribir la lógica de negocio.

Caso de uso: Modernización

Integración con sistemas externos

Conectar sistemas VFP con plataformas modernas como CRMs, ERPs o servicios en la nube mediante APIs.

Caso de uso: Integración

Primeros pasos

Para comenzar a utilizar FoxServer, sigue estos pasos básicos:

  1. Instalar FoxServer

    Descarga e instala el paquete desde el sitio oficial o Patreon.

    Ver guía de instalación
  2. Obtener una licencia

    Suscríbete en Patreon para obtener una licencia y copia el archivo foxserver.lic a la carpeta de configuración.

    copy foxserver.lic c:\foxserver\config\servers\
  3. Crear un proyecto API o WEB con WinFx

    Crea un proyecto web con la herramienta WinFx para Visual FoxPro que te permite crear proyectos nativos compatibles con FoxServer.

    Ver opciones de configuración
  4. Crear un controlador VFP

    Define endpoints para tu API utilizando controladores en Visual FoxPro.

    PROCEDURE pHello(req, res) HELP "GET: hello public"
        LOCAL loRes
        loRes = THIS.NewObject("status,data,message")
        loRes.status = "ok"
        loRes.data = NULL
        loRes.message = "VFP API Server is running"
        res.Status(200).Json(THIS.ToJson(loRes))
    ENDPROC
  5. Iniciar el servidor

    Ejecuta FoxServer para comenzar a recibir solicitudes en el puerto configurado.

    FoxServer.exe

¿Qué sigue?

Explora las siguientes secciones para profundizar en FoxServer: