IR
irwinrodriguez.dev
Volver a documentación

FoxServer

FoxServer es un servidor HTTP y HTTPS autónomo que publica lógica escrita en Visual FoxPro, y además sirve sitios web. No hace falta IIS ni Apache: el host es un proceso propio que carga tu MTDLL por COM y atiende las peticiones.

Lo que lo distingue de cualquier otro puente es que el mismo controlador se publica tres veces: como API REST, como método JSON-RPC 2.0 y como herramienta MCP, sin escribir el endpoint tres veces. Escribes una función VFP y un agente de IA la puede llamar igual que la llama tu frontend.

En esta sección

  • Instalación: Requisitos, el instalador, el árbol de la instalación y dónde va la licencia.
  • Primeros pasos: Tu primera API REST, desde el proyecto vacío hasta la primera respuesta.
  • Configuración: El manifiesto del servidor: puertos, HTTPS, logging, orígenes y middlewares.
  • Rutas: Cómo se declara una ruta en el HELP, los parámetros y las respuestas.
  • Middleware: Los middlewares que trae el host: JWT, logging, SSE, webhooks, estado, OpenAPI.
  • Licencias: Developer y Runtime, la activación, el mantenimiento y la puerta de versión.
  • Funciones avanzadas: SSE, webhooks salientes, el endpoint de estado y el modo servicio de Windows.
  • Ejemplos: Hola mundo, un CRUD completo y un maestro-detalle, listos para copiar.
  • Referencia API: La superficie real de ApiController, req y res, miembro a miembro.
  • Preguntas frecuentes: Preguntas frecuentes y qué mirar cuando algo no arranca.

Lo que hace

  • REST, JSON-RPC 2.0 y MCP desde el mismo controlador. El alias as <capacidad> del HELP es lo que convierte una ruta en método JSON-RPC y en herramienta MCP
  • Servidor HTTP y HTTPS autónomo, sin IIS ni Apache, que también sirve sitios web estáticos
  • Enrutamiento con parámetros, declarado en el propio comentario HELP del método
  • Middlewares del host: JWT, registro de peticiones, SSE, webhooks salientes, estado con PIN, OpenAPI y Swagger en /docs
  • /openapi.json generado del proyecto, sin escribirlo a mano
  • Webhooks salientes con firma Standard Webhooks, reintentos y cola de fallidos
  • Modo servicio de Windows, con alta y baja desde el propio host
  • Licencia validada en local al arrancar, sin llamar a ningún servidor
Una licencia Developer solo escucha a 127.0.0.1 Es el malentendido número uno del producto, y conviene saberlo antes de comprar: los asientos de FoxServer son licencias Developer, y el host responde 403 a toda petición que no venga de 127.0.0.1. Sirve para desarrollar y para probar en tu máquina. Para que otra máquina de la red o de internet llame a tu API hace falta una licencia Runtime, que es el otro producto de la tienda. El síntoma parece un problema de permisos y es la licencia.

Requisitos

Son dos juegos distintos, y mezclarlos es la causa de la mitad de los tropiezos: en la máquina donde desarrollas hace falta el IDE de Visual FoxPro; en la máquina donde sirves, no.

Para desarrollarPara servir
Visual FoxProEl IDE de VFP 9 SP2. init, controller-add y build lo necesitan: CREATE PROJECT y BUILD MTDLL no existen en el runtimeSolo el runtime de VFP 9: vfp9r.dll, vfp9t.dll, vfp9renu.dll y msvcr71.dll junto a tu MTDLL
.NET.NET 10 Runtime, variante x86. El de 64 bits no sirve, aunque esté instalado: el host es de 32 bits porque carga el COM de VFP, que lo esLo mismo: .NET 10 Runtime x86
WindowsWindows 10 o superior, de 32 o 64 bitsWindows 10 o superior
PermisosConsola elevada para build: BUILD MTDLL registra la coclase al terminarAdministrador solo para instalar y para dar de alta el servicio
LicenciaDeveloper (localhost)Runtime, si va a atender a otras máquinas
Sin conexión a internet FoxServer no llama a ningún servidor externo para funcionar. La licencia es un JWT que se comprueba en local al arrancar, contra una clave pública dentro del binario. Versión publicada: 0.9.38.