Workers y dispatchers / API estándar para a3ERP
Instalación de endpoints
Los extremos que ve la API no se configuran solos: viven en la tabla Endpoints (ver Las tablas de la API). En la primera instalación del módulo se cargan todos de golpe con un script semilla (endpoints-iniciales.sql). Cada fila define un extremo: su método (GET/POST), su nombre público (Endpoint), el Dispatcher (en los de escritura), el ItemName (la vista o procedimiento, en los de consulta) y el tipo (MethodKind: 0 vista, 1 procedimiento, 2 custom).
Después de la instalación inicial, los endpoints nuevos se añaden a mano desde la pantalla de Configuración de la API, o mediante scripts de migración de versión (lo habitual cuando un dispatcher a medida incorpora operaciones nuevas).
El script semilla BORRA los extremos existentes
endpoints-iniciales.sql empieza por DELETE FROM [Endpoints]. Es para la instalación inicial (tabla vacía). No lo ejecutes en una instalación que ya tenga extremos configurados o los perderás; en ese caso, añade los extremos que falten a mano o con un script de migración.
Script semilla completo, descargable: endpoints-iniciales.sql (reproducido a continuación):
DELETE FROM [Endpoints]
GO
SET IDENTITY_INSERT [Endpoints] ON
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (2, N'GET', N'Clientes', NULL, N'SIT_API_CLIENTES_Parametrized', 1, N'Listado de clientes')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (3, N'POST', N'Clientes', N'Clientes', NULL, 2, N'Alta, modificación y borrado de clientes')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (4, N'POST', N'Proveedores', N'Proveedores', NULL, 2, N'Alta, modificación y borrado de proveedores')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (5, N'POST', N'Articulos', N'Articulos', NULL, 2, N'Alta, modificación y borrado de artículos')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (6, N'GET', N'Articulos', NULL, N'SIT_API_ARTICULOS_Parametrized', 1, N'Listado de artículos')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (7, N'GET', N'Personas', NULL, N'SIT_API_PERSONAS_Parametrized', 1, N'Listado de personas')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (8, N'POST', N'Personas', N'Personas', N'', 2, N'Alta, modificación y borrado de personas')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (9, N'GET', N'FacturasVenta', NULL, N'SIT_API_CABEFACV_Parametrized', 1, N'Listado de cabeceras de facturas de venta')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (10, N'GET', N'LineasFacturasVenta', NULL, N'SIT_API_LINEFACV_Parametrized', 1, N'Listado de líneas de facturas de venta')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (11, N'POST', N'Facturas', N'Facturas', NULL, 2, N'Alta, modificación y borrado de facturas de compra/venta')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (12, N'GET', N'AlbaranesVenta', NULL, N'SIT_API_CABEALBV_Parametrized', 1, N'Listado de cabeceras de albaranes de venta')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (13, N'GET', N'LineasAlbaranesVenta', NULL, N'SIT_API_LINEALBV_Parametrized', 1, N'Listado de las lineas de los albaranes de venta')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (14, N'POST', N'Albaranes', N'Albaranes', NULL, 2, N'Alta, modificación y facturación de albaranes de venta')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (15, N'GET', N'FacturasCompra', NULL, N'SIT_API_CABEFACC_Parametrized', 1, N'Listado de cabeceras de facturas de compra')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (16, N'GET', N'LineasFacturasCompra', NULL, N'SIT_API_LINEFACC_Parametrized', 1, N'Listado de líneas de facturas de compra')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (17, N'GET', N'AlbaranesCompra', NULL, N'SIT_API_CABEALBC_Parametrized', 1, N'Listado de cabeceras de albaranes de compra')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (18, N'GET', N'LineasAlbaranesCompra', NULL, N'SIT_API_LINEALBC_Parametrized', 1, N'Listado de líneas de albaranes de compra')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (19, N'GET', N'Proveedores', NULL, N'SIT_API_PROVEEDORES_Parametrized', 1, N'Listado de proveedores')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (20, N'GET', N'Almacenes', NULL, N'SIT_API_ALMACEN_Parametrized', 1, N'Listado de almacenes')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (21, N'GET', N'Bancos', NULL, N'SIT_API_BANCOS_Parametrized', 1, N'Listado de bancos')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (22, N'GET', N'Carteras', NULL, N'SIT_API_CARTERA_Parametrized', 1, N'Listado de carteras')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (23, N'GET', N'Descuentos', NULL, N'SIT_API_DESCUENTOS_Parametrized', 1, N'Listado de descuentos')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (24, N'GET', N'DocumentosPago', NULL, N'SIT_API_DOCUPAGO_Parametrized', 1, N'Listado de los documentos de pago')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (25, N'GET', N'Familias', NULL, N'SIT_API_FAMILIAS_Parametrized', 1, N'Listado de las familias')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (26, N'GET', N'FormasPago', NULL, N'SIT_API_FORMAPAG_Parametrized', 1, N'Listado de las formas de pago')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (27, N'GET', N'PreciosEspeciales', NULL, N'SIT_API_PRCESP_Parametrized', 1, N'Listado de los precios especiales')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (28, N'GET', N'Series', NULL, N'SIT_API_SERIES_Parametrized', 1, N'Listado de las series')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (29, N'GET', N'Tarifas', NULL, N'SIT_API_TARIFAS_Parametrized', 1, N'Listado de las tarifas')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (30, N'GET', N'TarifasVenta', NULL, N'SIT_API_TARIFAVE_Parametrized', 1, N'Listado de las tarifas de venta')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (31, N'GET', N'TiposIVA', NULL, N'SIT_API_TIPOIVA_Parametrized', 1, N'Listado de los tipos de IVA')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (32, N'POST', N'Pedidos', N'Pedidos', NULL, 2, N'Alta, modificación y borrado de pedidos')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (33, N'GET', N'PedidosVenta', NULL, N'SIT_API_CABEPEDV_Parametrized', 1, N'Listado de cabeceras de pedidos de venta')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (34, N'GET', N'LineasPedidosVenta', NULL, N'SIT_API_LINEPEDV_Parametrized', 1, N'Listado de líneas de pedidos de venta')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (35, N'GET', N'PedidosCompra', NULL, N'SIT_API_CABEPEDC_Parametrized', 1, N'Listado de cabeceras pedidos compra')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (36, N'GET', N'LineasPedidosCompra', NULL, N'SIT_API_LINEPEDC_Parametrized', 1, N'Listado de líneas de pedidos de compra')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (38, N'GET', N'Representantes', NULL, N'SIT_API_REPRESENTANTES_Parametrized', 1, N'Listado de representantes')
INSERT [Endpoints] ([PK_EndpointId], [HttpMethod], [Endpoint], [Dispatcher], [ItemName], [MethodKind], [Description]) VALUES (39, N'POST', N'Auxiliares', N'Auxiliares', NULL, 2, N'Alta de series y centros de coste')
SET IDENTITY_INSERT [Endpoints] OFF
GO