hefestoapicontainer

Maps

Los maps son ficheros JSON dentro de la carpeta Maps/ de la API. Tienen dos usos principales:

Configuración por entorno

Los maps pueden ir en la raíz de Maps/ (aplican a todos los entornos) o en subcarpetas con nombre de entorno (Maps/dev/, Maps/pro/). Si el map está dentro de una carpeta de entorno, solo se cargará cuando la API esté desplegada en ese entorno.

Para acceder a estos valores desde el api.yaml, se usan alias:


before:
  CheckKey:
    directive: CheckKey
    expected: $.map.main.viewKey
    current: $.message.header.api-key

get /:
  View:
    directive: View
    name: home
    staticBasePath: $.map.main.staticBasePath
    data:
      domain: $.map.main.domain

También se puede acceder desde código PHP en una directiva:

$url = $state->map('main')->get('domain');
$todo = $state->map('main')->read(); // array completo

JSON Schema para validaciones

Cuando se usa la directiva LoadAndValidateModel con target: user, Hefesto busca automáticamente el fichero Maps/user.json (o Maps/{entorno}/user.json si existe).

Ejemplo de Maps/user.json usado como schema:

{
  "type": "object",
  "properties": {
    "name": { "type": "string" },
    "email": { "type": "string", "format": "email" }
  },
  "required": ["name", "email"],
  "additionalProperties": false
}