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."