⚡ Inicio rapido
Verifica que el servidor responde:
http://localhost:9090/health
Los endpoints GET devuelven formato columnar DataSnap.
CreatePedido devuelve un objeto JSON con las claves creadas.
📦 Formato de respuesta DataSnap
Todos los GET devuelven arrays por columna dentro de result[0]:
{
"result": [{
"CLAVE": [1, 2, 3],
"NOMBRE": ["Cliente A", "Cliente B", "Cliente C"],
"ACTIVO": ["S", "S", "N"]
}]
}
Fila i: result[0]["NOMBRE"][i]
🔫 Endpoints
GET
EchoString
Devuelve el mismo valor recibido.
http://localhost:9090/datasnap/rest/TServerMethods1/EchoString/holaGET
ReverseString
Devuelve el texto recibido al reves.
http://localhost:9090/datasnap/rest/TServerMethods1/ReverseString/abcdefGET
GetArticulos
Articulos activos con precio, stock, familia e IVA.
http://localhost:9090/datasnap/rest/TServerMethods1/GetArticulosGET
GetClientes
Clientes activos con centros, datos bancarios y direccion de envio.
http://localhost:9090/datasnap/rest/TServerMethods1/GetClientesGET
GetPedidos
Pedidos en un rango de fechas. Para un unico dia usa la misma fecha en ambos parametros.
http://localhost:9090/datasnap/rest/TServerMethods1/GetPedidos?desde=2026-03-13&hasta=2026-03-13desde YYYY-MM-DD hasta YYYY-MM-DD | Un dia:
desde=2026-03-13&hasta=2026-03-13GET
GetTarifasCliente
Tarifas de precio especial de un cliente.
http://localhost:9090/datasnap/rest/TServerMethods1/GetTarifasCliente/{codCliente}{codCliente} → APP$REC_CLIENTE.CODIGO | Ej:
/270GET
GetPrecioArticulosClienteHistorido
Historial de precios de un articulo para un cliente en los ultimos N dias.
http://localhost:9090/datasnap/rest/TServerMethods1/GetPrecioArticulosClienteHistorido/{codCliente}/{codArticulo}/{dias}
{codCliente} codigo cliente
{codArticulo} codigo articulo
{dias} dias hacia atras
Ej:
Ej:
/270/9345/90
POST
/datasnap/rest/TServerMethods1/ExecuteQuery
ExecuteQuery
Ejecuta un SELECT libre contra Firebird. Devuelve formato columnar DataSnap.
{ "sql": "SELECT FIRST 10 CLAVE, NOMBRE FROM APP$REC_CLIENTE WHERE ACTIVO = 'S'" }
Precaucion: solo SELECT. No ejecuta DML.
POST
/datasnap/rest/TServerMethods1/CreatePedido
CreatePedido
Crea un pedido con todas sus lineas en una transaccion atomica. Resuelve codigos de cliente y articulo internamente.
Body:
{
"codigo_cliente": "270", // APP$REC_CLIENTE.CODIGO (obligatorio)
"fecha": "2026-02-17", // YYYY-MM-DD, default: hoy
"fecha_entrega": "2026-02-20", // opcional
"forma_pago": "30 dias",
"forma_envio": "Por sus medios",
"observaciones": "Texto libre",
"cli_pedido": "REF-EXT-001", // referencia cliente, opcional
"cli_pedido_persona": "Juan Garcia", // contacto, opcional
"lineas": [
{
"codigo_articulo": "9345", // APP$ALM_ARTICULO.CODIGO (obligatorio)
"cantidad": 10.5, // obligatorio
"precio": 3.50,
"unidades": "kg", // ud | kg | Cajas | Bandejas (default: ud)
"categoria": "S", // S=Estandar E=Extra P=Premium (default: S)
"envasado": "N" // S | N (default: N)
}
]
}
Respuesta HTTP 201:
{
"ok": true,
"clave_pedido": 132078, // APP$REC_PEDIDO.CLAVE
"clave_nodo": 8365801, // GEN$NODO.CLAVE
"numero_pedido": 14,
"lineas_creadas": 2
}
| Campo linea | Oblig. | Valores | Default |
|---|---|---|---|
| codigo_articulo | si | APP$ALM_ARTICULO.CODIGO | - |
| cantidad | si | decimal | - |
| precio | no | decimal | 0 |
| unidades | no | ud | kg | Cajas | Bandejas | ud |
| piezas | no | decimal | 1 |
| categoria | no | S=Estandar | E=Extra | P=Premium | S |
| envasado | no | S | N | N |
| observaciones | no | texto libre | null |
💻 Ejemplos curl
# Health curl http://localhost:9090/health # Articulos curl http://localhost:9090/datasnap/rest/TServerMethods1/GetArticulos # Clientes curl http://localhost:9090/datasnap/rest/TServerMethods1/GetClientes # Pedidos de un dia concreto curl "http://localhost:9090/datasnap/rest/TServerMethods1/GetPedidos?desde=2026-03-13&hasta=2026-03-13" # Tarifas cliente 270 curl http://localhost:9090/datasnap/rest/TServerMethods1/GetTarifasCliente/270 # Historico precios (cliente 270, art 9345, 90 dias) curl http://localhost:9090/datasnap/rest/TServerMethods1/GetPrecioArticulosClienteHistorido/270/9345/90 # Consulta libre curl -X POST http://localhost:9090/datasnap/rest/TServerMethods1/ExecuteQuery -H "Content-Type: application/json" ^ -d "{"sql":"SELECT FIRST 5 CLAVE, NOMBRE FROM APP$REC_CLIENTE"}" # Crear pedido curl -X POST http://localhost:9090/datasnap/rest/TServerMethods1/CreatePedido -H "Content-Type: application/json" ^ -d "{"codigo_cliente":"270","fecha":"2026-03-13","fecha_entrega":"2026-03-13","forma_pago":"30 dias","lineas":[{"codigo_articulo":"9345","cantidad":10.5,"precio":3.50,"unidades":"kg"},{"codigo_articulo":"9218","cantidad":5,"precio":8.00,"unidades":"ud","categoria":"E"}]}"