Volver a la wiki

Endpoint: POST /api/racks/visio/analyze — análisis y conversión de stencils Visio

Descripción

Ruta: POST /api/racks/visio/analyze

Endpoint que recibe un fichero de stencil (Visio moderno .vsdx/.vsd, clásico .vssx/.vdx/.vss, o SVG directo) y dispara el análisis/conversión. Para formatos Visio modernos, la conversión corre asíncrona en worker Huey; para otros, análisis sincrónico.

Parámetros

Body: multipart/form-data

Validación:

Respuesta (200)

Para .vsdx/.vsd (asíncrono)

{
  "session_id": "uuid-string",
  "filename": "cisco_racks.vsdx",
  "status": "processing",
  "masters": []
}

Frontend hace polling a GET /api/racks/visio/session/{session_id} para obtener masters.

Para .svg subido directo

{
  "session_id": "uuid-string",
  "filename": "layout.svg",
  "masters": [
    {
      "name": "layout",
      "u_height": 1,
      "image_path": "uploads/temp/uuid.../layout.svg"
    }
  ]
}

Para .vssx/.vdx/.vss (sincrónico, parser VisioParser)

{
  "session_id": "uuid-string",
  "filename": "stencils.vssx",
  "masters": [
    {
      "name": "Rack",
      "u_height": 2.5,
      "image_path": "uploads/temp/uuid.../Rack.svg"
    },
    ...
  ]
}

Flujo interno

  1. Validación: extensión, tamaño
  2. Guardar en disco: temp/{session_id}/{filename}
  3. Ramificación según extensión:
    • .svg: sanitizar, devolver master inmediatamente
    • .vsdx/.vsd: encolar convert_visio_async() en Huey, devolver status=processing
    • .vssx/.vdx/.vss: parsear con VisioParser`, extraer masters sincronicamente
  4. Respuesta: 200 + payload

Permisos

Seguridad

Códigos de respuesta

CódigoCondición
200Análisis exitoso / conversión encolada
400Sin fichero, extensión inválida, tamaño excedido, SVG inválido
500Error en parsing (VisioParser) o libvisio_ng

Testing

Véase también

Subir