{"id":"repo/meta-api-spec","source":"repo","sourceLabel":"repository root","sourcePath":"META_API_SPEC.md","routePath":"/fastapp/public-docs/page/repo/meta-api-spec","rawPath":"/fastapp/public-docs/raw/repo/meta-api-spec","slug":["repo","meta-api-spec"],"slugPath":"repo/meta-api-spec","title":"🔌 META API SPEC — A Meta Interface","description":"Este documento é a referência oficial das rotas de gestão do Fastapp Engine. Estas rotas permitem gerir a estrutura das aplicações e acompanhar a evolução do ecossistema.","headings":["🔌 META API SPEC — A Meta Interface","🛠️ Gerenciamento de Aplicações (/api/app)","🚩 Listar/Criar Apps","✏️ Atualizar App (Metadata Patch)","📸 Sistema de Snapshot (/api/system)","🧊 Gerar Snapshot","🗃️ Sincronização de Storage (/api/data)","⚙️ Adaptar Storage (DDL Adapt)","📊 Endpoints de Dados (v1) (/api/v1/data)","🔍 Filtragem (Formatos Aceitos)","📑 Paginação e Ordenação","🚀 Exemplo de Requisição Completa"],"wordCount":270,"markdown":"# 🔌 META API SPEC — A Meta-Interface\r\n\r\nEste documento é a referência oficial das rotas de gestão do Fastapp Engine. Estas rotas permitem gerir a estrutura das aplicações e acompanhar a evolução do ecossistema.\r\n\r\n---\r\n\r\n## 🛠️ Gerenciamento de Aplicações (`/api/app`)\r\n\r\n### 🚩 Listar/Criar Apps\r\n- **GET `/api/app`**: Lista todos os apps cadastrados.\r\n- **POST `/api/app`**: Cria uma nova aplicação baseada no `AppSchema`.\r\n\r\n### ✏️ Atualizar App (Metadata Patch)\r\n- **PATCH `/api/app/:id`**: Atualiza a definição do app (objetos, módulos).\r\n- **Parâmetro `autoSnapshot`**: Se `true`, dispara o snapshot automático após o patch.\r\n\r\n---\r\n\r\n## 📸 Sistema de Snapshot (`/api/system`)\r\n\r\n### 🧊 Gerar Snapshot\r\n- **POST `/api/system/snapshot`**: Lê o banco de dados e gera o arquivo físico `app/fastapp/static-manifest.ts`.\r\n- **Importante**: Garante performance e versionamento via Git.\r\n\r\n---\r\n\r\n## 🗃️ Sincronização de Storage (`/api/data`)\r\n\r\n### ⚙️ Adaptar Storage (DDL Adapt)\r\n- **POST `/api/data/:object/storage`**: Alinha o banco de dados físico com os metadados.\r\n- **Segurança**: Operação deliberadamente manual para revisão de alterações SQL.\r\n\r\n---\r\n\r\n## 📊 Endpoints de Dados (v1) (`/api/v1/data`)\r\n\r\nO motor provê acesso universal aos dados através de uma interface de consulta soberana.\r\n\r\n### 🔍 Filtragem (Formatos Aceitos)\r\n\r\nO sistema suporta dois formatos de filtros. O formato **Flat** é o padrão soberano para novas implementações.\r\n\r\n| Operador | Flat (Recomendado) | Legacy | Exemplo Flat |\r\n| :--- | :--- | :--- | :--- |\r\n| **Eq** | `field=val` | `filters[field][=]=val` | `?status=NOVO` |\r\n| **Ne** | `field[ne]=val` | `filters[field][$ne]=val` | `?status[ne]=FIXED` |\r\n| **Gt/Gte** | `field[gt/gte]=v`| `filters[field][$gt/gte]=v`| `?val[gt]=100` |\r\n| **Lt/Lte** | `field[lt/lte]=v`| `filters[field][$lt/lte]=v`| `?val[lt]=50` |\r\n| **Like** | `field[like]=str`| `filters[field][$like]=str`| `?name[like]=mario` |\r\n| **Between**| `field[between]=a,b`| `filters[field][between]=a,b`| `?date[between]=2023-01-01,2023-12-31` |\r\n| **In** | `field[in]=a,b,c`| `filters[field][in]=a,b,c`| `?id[in]=1,2,3` |\r\n\r\n### 📑 Paginação e Ordenação\r\n\r\nParâmetros reservados para controle de fluxo:\r\n\r\n| Parâmetro | Tipo | Descrição | Exemplo |\r\n| :--- | :--- | :--- | :--- |\r\n| **$limit** | `number` | Limite de registros por página (default: 50). | `?$limit=10` |\r\n| **$skip** | `number` | Quantidade de registros a ignorar. | `?$skip=20` |\r\n| **$sort** | `object` | Dicionário `{campo: 1/-1}`. | `?$sort[created_at]=-1` |\r\n| **granularity**| `string`| Define a resolução temporal para métricas BI. | `?granularity=month` |\r\n\r\n### 🚀 Exemplo de Requisição Completa\r\n`GET /api/v1/data/lead?status=NOVO&$limit=10&$sort[nome]=1`\r\n\r\n---\r\n\r\n---\r\n\r\n> \"A Meta-API é a ponte entre a inteligência do motor e a operação do sistema.\"\r\n"}