Davisa
Contacto

ERP y Business Central

API REST (REST)

Estilo arquitectónico web basado en HTTP y recursos uniformes (Roy Fielding, 2000). Business Central expone API REST estándar y custom AL con OAuth 2.0 sobre Azure AD.

Qué es y cuándo aplica

REST (Representational State Transfer) es un estilo arquitectónico para sistemas distribuidos definido por Roy Fielding en su tesis doctoral de 2000 (“Architectural Styles and the Design of Network-based Software Architectures”). No es un protocolo, no es un estándar W3C, no es un producto: es un conjunto de restricciones arquitectónicas que, aplicadas sobre HTTP, producen sistemas escalables, cacheables y con bajo acoplamiento entre cliente y servidor.

Las seis restricciones REST originales son: arquitectura cliente-servidor, stateless (sin estado en el servidor entre llamadas), caché, interfaz uniforme (recursos identificados por URI, manipulación por representación, mensajes auto-descriptivos, HATEOAS), sistema en capas y código bajo demanda (opcional). Una API es RESTful cuando cumple esas restricciones; muchas APIs que se llaman “REST” en realidad son HTTP+JSON sin cumplir todas (en particular HATEOAS), por lo que el término más honesto en muchos casos sería “API HTTP-JSON”. En la práctica, “API REST” se usa como sinónimo de “API web sobre HTTP con verbos y recursos”.

El sentido común aplicable: una API REST se usa para que dos sistemas se hablen sobre HTTP, con verbos estándar, URLs predecibles y datos en formato textual (JSON predominantemente). Es la lingua franca de la integración moderna entre ERP, e-commerce, marketplaces, apps móviles, dashboards y sistemas de terceros.

Verbos, formatos y recursos

Los métodos HTTP se mapean a operaciones CRUD:

Los códigos de respuesta importantes: 200 (OK), 201 (Created), 204 (No Content), 400 (Bad Request), 401 (Unauthorized), 403 (Forbidden), 404 (Not Found), 409 (Conflict), 422 (Unprocessable Entity), 429 (Too Many Requests), 500 (Internal Server Error). Tratarlos como meros “errores genéricos” es un antipatrón: cada código tiene semántica diferente y la integración debe reaccionar diferente a cada uno.

El formato de datos dominante es JSON (RFC 8259). XML fue habitual hasta 2015 y persiste en integraciones legacy y en SOAP. Algunos casos especiales: multipart/form-data para subida de archivos, application/x-ndjson para streaming, text/csv para exportes masivos.

REST vs SOAP vs GraphQL vs gRPC

REST sigue siendo la opción por defecto en integraciones empresariales: amplísima compatibilidad, documentación con OpenAPI / Swagger, ecosistema maduro de herramientas (Postman, Insomnia, curl).

API REST en Business Central

Business Central expone su funcionalidad por dos vías de API:

Autenticación

Desde Business Central 2022 Wave 2 (BC 21), la autenticación obligatoria es OAuth 2.0 sobre Azure AD (Microsoft Entra ID). Los flujos:

La basic auth con Web Service Access Key está deprecada y eliminada en SaaS.

Casos típicos de integración

Errores frecuentes

  1. No respetar los rate limits. Business Central SaaS impone límites por tenant y por endpoint (típicamente 600 req/min y 6.000 req/5 min por entorno productivo, ajustable). Saturar con sincronizaciones masivas en hora pico genera respuestas 429 Too Many Requests. La solución es backoff exponencial y batch endpoints, no aumentar la frecuencia.
  2. Ignorar la paginación. Las consultas devuelven por defecto 20.000 registros máximo con @odata.nextLink. Una integración que asume “una página = todos los datos” pierde silenciosamente registros cuando el catálogo crece.
  3. No manejar el lock optimista (ETag). Las actualizaciones (PATCH, DELETE) requieren cabecera If-Match con el ETag del recurso. Sin ETag, BC responde 412 Precondition Failed. Ignorarlo lleva a sobrescrituras silenciosas.
  4. Confundir errores 4xx con 5xx. Un 4xx no se reintenta (es culpa del cliente: datos mal formados, autenticación caducada, recurso inexistente). Un 5xx sí se reintenta (problema temporal del servidor). Las integraciones que reintentan 401 indefinidamente acaban bloqueando la app registration.
  5. Hardcodear el tenant ID o el entorno. Mover de sandbox a producción rompe la integración. Variables de entorno y configuración externalizada son obligatorias.
  6. No versionar la API custom. Publicar una API AL sin APIVersion (“v1.0”, “v2.0”) y romper compatibilidad en una release rompe todas las integraciones del cliente sin previo aviso.
  7. No firmar ni cifrar payloads sensibles. OAuth protege la sesión, pero el contenido viaja en JSON plano. Datos especialmente protegidos (cuentas bancarias, datos de salud, datos personales sensibles) requieren cifrado adicional a nivel de aplicación.

¿Te ayudamos a aplicarlo en tu Business Central?

Davisa lleva implantando Business Central desde 2003. Si necesitas api rest dentro de tu ERP, te enseñamos cómo Business Central lo cubre nativo, sin middleware ni hojas paralelas.

Hablar con un asesor →
Escríbenos por WhatsApp