> For the complete documentation index, see [llms.txt](https://doc.velneo.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.velneo.com/38/velneo-vserver/api-rest-en-vserver.md).

# API REST en vServer

[Velneo vServer](/38/velneo-vserver/que-es-velneo-vserver.md) puede exponer una solución Velneo mediante API REST (OpenAPI 3.1 + visor Swagger), disponible como API HTTP estándar para integraciones y pruebas manuales.

Velneo vServer ofrece dos API REST, que se publican en rutas del servicio HTTPS:

* [API REST de instancia](/38/velneo-vserver/api-rest-en-vserver/api-rest-de-instancia.md): acceso a los datos de una instancia (tablas, registros, tablas estáticas, procesos y búsquedas).
* [API REST de administración](/38/velneo-vserver/api-rest-en-vserver/api-rest-de-administracion.md): administración del servidor (usuarios, grupos, soluciones, instancias, tareas, monitorización, licencia y servicio HTTPS).

### Conceptos clave

#### Enrutado configurable

El vServer **no expone API REST en una URL fija**: se sirven en las rutas que se definan en el [*virtual host* de Velneo vAdmin](/38/velneo-vadmin/web.md#las-propiedades-de-un-virtual-host-son-las-siguientes), y cada ruta tiene un **tipo**:

| Tipo de ruta          | Sirve en su ruta                                              |
| --------------------- | ------------------------------------------------------------- |
| **App**               | La aplicación Velneo (procesos accesibles Web, etc.)          |
| **Apirest instancia** | API REST de una instancia: datos (CRUD), procesos y búsquedas |
| **Apirest admin**     | API REST de administración del vServer                        |
| **MCP**               | Servidor MCP para agentes de IA                               |
| **Health**            | Estado del servidor, para monitorización                      |
| **Metrics**           | Métricas de funcionamiento del servidor                       |

La descripción de cada tipo y del resto de parámetros de una ruta está en [Rutas](/38/velneo-vadmin/web.md#rutas).

* Una ruta de tipo **Apirest instancia** o **Apirest admin** responde en `https://host/<ruta>/...`.
* **Si no se crea una ruta de un tipo determinado, ese servicio no existe** (se obtiene un error 404).
* El **CRUD de datos de una instancia solo funciona si esa instancia está expuesta**, es decir, enlazada (*bindada*) a una ruta de tipo **Apirest instancia** del *virtual host*.
* Todo *virtual host* nuevo incluye de serie una ruta de tipo **Health** (`/health`) y otra de tipo **Metrics** (`/metrics`).

### Configuración en vAdmin

1. Abrir **vAdmin** y conectarse al servidor.
2. En el menú lateral, ir a **Web**.
3. Hacer doble clic en el *virtual host* correspondiente (por ejemplo, `Puerto https: 443 (TLS/SSL)`).
4. Añadir una ruta y asignarle el tipo que corresponda: **Apirest instancia**, para exponer los datos de una instancia (indicando la instancia), o **Apirest admin**, para la administración del vServer. Los parámetros de una ruta se describen en Rutas.
5. Aceptar la ruta, aceptar el *virtual host* y aplicar/guardar los cambios.

<figure><img src="https://1985084359-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSSuDG1WIgF9xPUK4NaFS%2Fuploads%2FcLiSL8kTyEDv0nrBea1Z%2Fimage.png?alt=media&amp;token=cf0e986d-c842-450b-9a91-a4fa60d9fcef" alt=""><figcaption></figcaption></figure>

### Usar la API REST con Swagger

Las rutas de API REST exponen un visor **Swagger UI** embebido, sin dependencias externas, y la especificación **OpenAPI 3.1** en bruto:

```
https://<servidor>/<ruta>/docs
https://<servidor>/<ruta>/openapi.json
```

Cómo autenticarse en el visor y probar las operaciones se explica en [API REST de instancia](/38/velneo-vserver/api-rest-en-vserver/api-rest-de-instancia.md).

### Funcionalidades disponibles

A continuación se describen los grupos de operaciones disponibles. Las operaciones de datos y de administración están disponibles también para agentes de IA a través del [servidor MCP](/38/velneo-vserver/servidor-mcp.md), que además permite crear y modificar objetos de una solución, como en Velneo vDevelop. Esto último no se puede hacer con las API REST.

#### Administración

Las operaciones de administración del servidor (usuarios, grupos, soluciones, instancias, tareas, monitorización, licencia y servicio HTTPS) se describen en [API REST de administración](/38/velneo-vserver/api-rest-en-vserver/api-rest-de-administracion.md).

**Datos: CRUD de registros**

Estructura de las tablas, registros, campos objeto, tablas estáticas, procesos y búsquedas de una instancia. Ver [API REST de instancia](/38/velneo-vserver/api-rest-en-vserver/api-rest-de-instancia.md).

Ejemplos:

`GET /{ruta}/data/tables/{tabla}/schema`

`GET /{ruta}/data/tables/{tabla}/records?limit=5`

`POST /{ruta}/data/tables/{tabla}/records body: { "campo": "valor", ... }`

`GET /{ruta}/data/tables/{tabla}/records/{_dir}`

`PATCH /{ruta}/data/tables/{tabla}/records/{_dir} body: { "campo": "valor" }`

`DELETE /{ruta}/data/tables/{tabla}/records/{_dir}`

{% hint style="info" %}
Las operaciones sobre un registro individual usan como identificador el `_dir` que devuelve la operación de alta, no el campo `ID` de la tabla.
{% endhint %}

### Solución de problemas

| Situación                                                                   | Causa habitual                                                                                                                                                                                                                   |
| --------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **404** al llamar a la ruta de la API REST                                  | No existe una ruta de ese tipo configurada en el *virtual host* (ver *Configuración en vAdmin*).                                                                                                                                 |
| **401**                                                                     | Falta el token Bearer (API REST) o no se ha introducido la credencial en el visor Swagger.                                                                                                                                       |
| *"Instancia no expuesta por este virtualhost"* / **403** al acceder a datos | La instancia de datos no está enlazada a ninguna ruta del *virtual host*. Debe crearse una ruta de tipo **Apirest instancia** con esa instancia asociada.                                                                        |
| **400** al operar sobre un registro individual                              | El identificador no corresponde a ningún criterio válido: usa el `_dir`, la clave primaria o el parámetro `keyField` (ver [Leer un registro](/38/velneo-vserver/api-rest-en-vserver/api-rest-de-instancia.md#leer-un-registro)). |
