Weftmap
Documentación

Referencia de la API

El análisis vive en un único endpoint. Puedes llamarlo directamente para integrarlo en tus propias herramientas.

POST /api/analyze

Envía código y recibe un grafo { nodes, edges }. Acepta un snippet o varios archivos.

Request — snippet
POST /api/analyze
Content-Type: application/json

{
  "language": "python",
  "code": "def main():\n    helper()\n\ndef helper():\n    pass"
}
Request — proyecto (varios archivos)
{
  "language": "python",
  "files": [
    { "path": "main.py", "content": "from util import work\n..." },
    { "path": "util.py", "content": "def work(): ..." }
  ]
}
Response 200
{
  "nodes": [
    { "id": "main.py::main", "label": "main", "type": "function", "parent": "mod::main.py" }
  ],
  "edges": [
    { "source": "main.py::main", "target": "util.py::work", "kind": "calls" }
  ]
}

Campos

  • language — uno de los lenguajes soportados (python, javascript, typescript, go, rust, sql).
  • code — el fragmento a analizar (modo snippet).
  • files — arreglo de { path, content } (modo proyecto). Si está presente, tiene prioridad sobre code.

Límites

  • Hasta 2 MB de contenido total por petición.
  • Hasta 400 archivos en modo proyecto.

Errores

  • 400 — JSON inválido o lenguaje no soportado.
  • 413 — se superó el límite de tamaño o de archivos.
El código se envía al servidor para parsearlo con Tree-sitter y se descarta tras responder. No se almacena nada.