Versionado Basado en Cabeceras

Ciclo De Vida Y Versionado Jan 6, 2025 HTTP

Definition

Una estrategia de versionado donde la versión de la API se especifica en cabeceras HTTP personalizadas, manteniendo las URLs limpias y siguiendo más de cerca los principios REST.

Example

La API de GitHub usa versionado por cabecera: X-GitHub-Api-Version: 2022-11-28, permitiendo que la misma URL sirva diferentes versiones según preferencia del cliente.

Analogía

Como hablar con un traductor con una tarjeta de preferencia - misma conversación, pero el traductor ajusta su nivel de lenguaje según tu tarjeta.

Code Example


// Header-based versioning
GET https://api.company.com/customers/123
X-API-Version: 1

GET https://api.company.com/customers/123
X-API-Version: 2

// Azure API Management style
GET https://api.company.com/customers/123
api-version: 2023-05-01

// With version negotiation
GET https://api.company.com/customers/123
X-API-Version: 2
Accept: application/json

[HTTP/1.1](https://reference.apios.info/es/terms/http-1-1/) 200 OK
X-API-Version: 2
Content-Type: application/json

// Missing version header - use default
GET https://api.company.com/customers/123

HTTP/1.1 200 OK
X-API-Version: 2  // Server responds with used version
Warning: 299 - "Using default version 2. Specify X-API-Version header."