Ejemplos con cURL
5 ejemplos reales contra una instancia local del ERP. Asumen que tienes
las credenciales de desarrollo (cb / 1234) y que el ERP corre en
http://localhost.
1. Login
curl -X POST http://localhost/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"usuario": "cb", "password": "1234"}'Guarda el token de la respuesta:
TOKEN=$(curl -s -X POST http://localhost/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"usuario": "cb", "password": "1234"}' \
| jq -r '.data.token')
echo $TOKEN2. Listar compras
curl "http://localhost/api/v1/Compra?per_page=10&sort=fecha&order=desc" \
-H "Authorization: Bearer $TOKEN"Filtros típicos:
# Compras del proveedor 4218 entre enero y marzo de 2026
curl "http://localhost/api/v1/Compra?proveedor=4218&fecha__gte=2026-01-01&fecha__lte=2026-03-31" \
-H "Authorization: Bearer $TOKEN"3. Obtener una compra específica
curl http://localhost/api/v1/Compra/12345 \
-H "Authorization: Bearer $TOKEN"Para evitar resolver relaciones (más rápido en listados grandes, irrelevante en uno solo):
curl "http://localhost/api/v1/Compra/12345?lean=true" \
-H "Authorization: Bearer $TOKEN"4. Autorizar compras (batch — Business Action grid_action)
curl -X POST http://localhost/api/v1/Compra/actions/autorizar_compra \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"ids": [12345, 12346, 12347]}'Respuesta esperada — éxitos parciales:
{
"data": {
"results": [
{ "id": 12345, "ok": true },
{ "id": 12346, "ok": true },
{ "id": 12347, "ok": false, "errors": [{ "code": "INVALID_STATE", "message": "Compra ya autorizada" }] }
]
},
"meta": { "model": "Compra", "action": "autorizar_compra", "total": 3, "succeeded": 2, "failed": 1 },
"errors": null
}5. Cancelar una compra (single — Business Action url_action)
curl -X POST http://localhost/api/v1/Compra/12345/actions/cancelar_compra \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"motivo": "Duplicado"}'#!/usr/bin/env bash
set -euo pipefail
BASE="http://localhost/api/v1"
TOKEN=$(curl -s -X POST "$BASE/auth/login" \
-H "Content-Type: application/json" \
-d '{"usuario": "cb", "password": "1234"}' \
| jq -r '.data.token')
# Listar las primeras 5 compras pendientes (estado I = iniciada)
curl -s "$BASE/Compra?estado=I&per_page=5" \
-H "Authorization: Bearer $TOKEN" \
| jq '.data[] | {id, total, proveedor_str}'