Instalación y configuración
Configuración de endpoints
Un extremo (endpoint) es cada operación que la API expone. Se dan de alta desde la pantalla de Configuración de la API (Sit.a3ERP.Api.Config). Hay tres tipos, y de su tipo depende cómo se resuelve la petición.
| Tipo | Método | Ruta | Resuelve |
|---|---|---|---|
| Vista SQL | GET | /api/view/{nombre} |
Una vista de SQL Server (solo lectura) |
| Procedimiento almacenado | GET / POST | /api/proc/{nombre} |
Un procedimiento almacenado, con parámetros |
| Operación personalizada | POST | /api/custom/{dispatcher}/{nombre} |
Lógica a medida que ejecuta un worker |
Antes de empezar
Necesitas la base de datos de la API ya creada (ver Instalación y puesta en marcha).
Endpoints SQL: la convención#
Cada entidad que se expone se apoya en dos objetos SQL con nombres normalizados. Mantener el prefijo SIT_API_ los hace fáciles de localizar:
Dónde se crean
Si la base de datos expuesta es una empresa de a3ERP, las vistas y procedimientos deben estar en el diccionario de extensibilidad de a3ERP, no creados sueltos en SQL Server (de lo contrario se perderían al regenerar o actualizar la base de datos). La API estándar para a3ERP entrega su propio diccionario justamente así (ver Puesta en marcha). En una base de datos SQL que no sea de a3ERP, se crean directamente en SQL Server (por ejemplo, con SQL Server Management Studio).
- Una vista
SIT_API_<ENTIDAD>— define qué campos se exponen. - Un procedimiento
SIT_API_<ENTIDAD>_Parametrized— añade el filtro por identificador; si el parámetro llegaNULL, devuelve todo.
Ejemplo para clientes:
CREATE VIEW [dbo].[SIT_API_CLIENTES]
AS
SELECT CODCLI, NOMCLI, NIFCLI, DIRCLI, TIPIVA, TARIFA, E_MAIL, FORPAG
FROM clientes WITH(NOLOCK)
GO
CREATE PROCEDURE [dbo].[SIT_API_CLIENTES_Parametrized] @CODCLI varchar(8)
AS
IF @CODCLI IS NULL
SELECT * FROM SIT_API_CLIENTES
ELSE
SELECT * FROM SIT_API_CLIENTES WHERE CODCLI = @CODCLI
GO
La vista es la fuente de la verdad sobre los campos; el procedimiento se limita a filtrar sobre ella.
Dar de alta el extremo#
En la pantalla de Configuración de la API, sección Extremos. Como en los usuarios, no hay un botón de «añadir»: se escribe en la fila vacía del final de la parrilla.

Por cada extremo defines:
- Extremo — el nombre público que irá en la URL (
/api/view/{nombre}o/api/proc/{nombre}). Puede diferir del nombre del objeto SQL. - Tipo — Vista SQL, Procedimiento almacenado u Operación personalizada.
- Elemento — el nombre real del objeto de SQL Server que se ejecuta (la vista o el procedimiento); en operaciones personalizadas, el método del worker.
- Dispatcher — solo en operaciones personalizadas (ver Workers y dispatchers).
- Método HTTP y Descripción.
Extremo vs Elemento
El nombre del extremo (lo que se ve en la URL) y el objeto SQL que ejecuta son independientes. Puedes exponer Clientes y que por debajo ejecute la vista SIT_API_CLIENTES.
Parámetros de los procedimientos#
Los parámetros de un procedimiento se configuran al conceder el permiso a cada usuario (ver Usuarios y permisos), no al dar de alta el extremo. Al pulsar Permitir sobre un extremo de tipo procedimiento, se abre la ventana Configurar extremo, que lee automáticamente los parámetros del procedimiento desde SQL (nombre, orden y tipo):

Sobre cada parámetro defines:
- Nombre — ya viene del procedimiento; la API le antepone el
@al llamar. - Tipo — el tipo SQL del parámetro (también detectado).
- Obligatorio — si la petición debe enviarlo.
- Forzar valor / Valor — marca Forzar valor y escribe el Valor para fijarlo desde el servidor, ignorando el que mande el cliente.
El valor forzado es por usuario
Como los parámetros viven en el permiso, dos usuarios pueden tener el mismo procedimiento con valores forzados distintos. Es la vía para acotar a un usuario (por ejemplo, fijar una empresa o un filtro concreto).
Cómo se envían en la llamada (más detalle en Consumo de la API): en GET, como objeto JSON en base64 (texto empaquetado para que viaje en una cabecera) dentro de la cabecera Parameters; en POST, como objeto JSON en el cuerpo.
Operaciones personalizadas (custom)#
Para un extremo custom, el extremo solo declara el dispatcher y el nombre del método (tipo Operación personalizada). La lógica no está en la API: la ejecuta un worker de forma asíncrona, y la respuesta se recupera consultando la tarea. El detalle está en Workers y dispatchers.
Último paso: dar permiso#
Dar de alta un extremo no lo hace accesible. Hay que conceder el permiso correspondiente a los usuarios que deban usarlo; sin permiso, la API responde 403. Ver Usuarios y permisos.