Configuracion
La configuracion de FoxServer se almacena en archivos JSON por proyecto. WinFx puede generarlos y editarlos visualmente; tambien puedes editarlos directamente.
Ubicacion del archivo de configuracion
Cada proyecto tiene su propio archivo en:
C:\Program Files\FoxServer\config\servers\{projectname}.json Ejemplo completo
{
"name": "salesapi",
"description": "Sales management REST API",
"type": "api",
"active": true,
"host": "0.0.0.0",
"port": 8080,
"prefix": "/api/v1",
"issecure": false,
"dllpath": "C:\\projects\\salesapi\\build\\Interop.salesapi.dll",
"allowedorigins": "https://myapp.com",
"allowedmethods": "GET,POST,PUT,DELETE,OPTIONS",
"allowedheaders": "Content-Type,Authorization",
"middleware": {
"auth": {
"enabled": true,
"type": "jwt",
"secret": "your-256-bit-secret-base64",
"tokenexpirationseconds": 3600,
"loginendpoint": "auth/login"
},
"logging": {
"enabled": true,
"path": "C:\\logs\\salesapi\\",
"fileprefix": "salesapi",
"format": "Detailed",
"options": {
"requests": true,
"responses": true,
"errors": true,
"debug": false,
"performance": true
}
}
}
} Propiedades del servidor
| Propiedad | Tipo | Defecto | Descripcion |
|---|---|---|---|
name | String | — | Identificador unico del proyecto/servidor |
description | String | "" | Descripcion legible para humanos |
type | String | api | "api" para REST APIs, "web" para servir archivos estaticos |
active | Boolean | false | Si el servidor se carga al arrancar FoxServer |
host | String | 127.0.0.1 | Direccion de escucha. 0.0.0.0 acepta todas las interfaces |
port | Number | 8080 | Puerto HTTP de escucha |
prefix | String | "" | Prefijo de ruta URL (ej. "/api/v1") |
issecure | Boolean | false | Habilitar HTTPS/SSL |
dllpath | String | — | Ruta al archivo Interop DLL compilado (requerido) |
publicdir | String | "" | Directorio de archivos estaticos (solo type: web) |
CORS
Configura los origenes, metodos y cabeceras permitidos para peticiones entre dominios:
{
"allowedorigins": "https://app.example.com,https://admin.example.com",
"allowedmethods": "GET,POST,PUT,DELETE,OPTIONS",
"allowedheaders": "Content-Type,Authorization,X-Requested-With"
} | Propiedad | Tipo | Valor por defecto | Descripcion |
|---|---|---|---|
allowedorigins | String | * | Dominios permitidos separados por coma, o "*" para cualquiera |
allowedmethods | String | GET,POST,PUT,DELETE,OPTIONS | Metodos HTTP permitidos desde el navegador |
allowedheaders | String | Content-Type,Authorization | Cabeceras que el cliente puede enviar |
En produccion, especifica siempre dominios exactos en lugar de "*" para mayor seguridad.
HTTPS / SSL
Para habilitar HTTPS necesitas un certificado en formato .pfx o .p12:
{
"issecure": true,
"certificatename": "mycert.pfx",
"certificatepassword": "your-cert-password"
} Nunca incluyas contrasenas de certificados en el control de versiones. Usa variables de entorno o un gestor de secretos.
Logging
Configura el sistema de logs del servidor:
| Propiedad | Tipo | Defecto | Descripcion |
|---|---|---|---|
enabled | Boolean | false | Activar / desactivar el logging |
path | String | — | Directorio donde se escriben los archivos de log (debe existir) |
fileprefix | String | foxserver | Prefijo del nombre de archivo. Resultado: "{prefix}_2026-04-11.log" |
format | String | Simple | "Simple" (una linea), "Detailed" (info completa), "JSON" |
options.requests | Boolean | true | Registrar peticiones entrantes |
options.responses | Boolean | true | Registrar respuestas salientes |
options.errors | Boolean | true | Registrar errores |
options.debug | Boolean | false | Registrar mensajes de debug (mas verboso) |
options.performance | Boolean | false | Registrar tiempos de respuesta por endpoint |
Siguiente: Rutas →