IR
irwinrodriguez.dev
Volver a documentacion

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

PropiedadTipoDefectoDescripcion
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"
}
PropiedadTipoValor por defectoDescripcion
allowedoriginsString*Dominios permitidos separados por coma, o "*" para cualquiera
allowedmethodsStringGET,POST,PUT,DELETE,OPTIONSMetodos HTTP permitidos desde el navegador
allowedheadersStringContent-Type,AuthorizationCabeceras 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:

PropiedadTipoDefectoDescripcion
enabledBooleanfalseActivar / desactivar el logging
pathStringDirectorio donde se escriben los archivos de log (debe existir)
fileprefixStringfoxserverPrefijo del nombre de archivo. Resultado: "{prefix}_2026-04-11.log"
formatStringSimple"Simple" (una linea), "Detailed" (info completa), "JSON"
options.requestsBooleantrueRegistrar peticiones entrantes
options.responsesBooleantrueRegistrar respuestas salientes
options.errorsBooleantrueRegistrar errores
options.debugBooleanfalseRegistrar mensajes de debug (mas verboso)
options.performanceBooleanfalseRegistrar tiempos de respuesta por endpoint

Siguiente: Rutas →