API Versioning

How to evolve APIs without breaking existing clients.

URL Versioning
GET /api/v1/users
GET /api/v2/users

Versioning Strategies

URI versioning, header versioning, content negotiation.

StrategyProsCons
URLClear, simpleMultiple endpoints
HeaderClean URLsLess visible

Contract Testing

Ensure API compatibility with consumer-driven contracts.

Pact Testing
pact.given("user exists").upon_receiving("GET request").will_respond_with(200)