api-versioning-strategy

>

INSTALLATION
npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill api-versioning-strategy
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

API Versioning Strategy

Table of Contents

  • [Overview](#overview)
  • [When to Use](#when-to-use)
  • [Quick Start](#quick-start)
  • [Reference Guides](#reference-guides)
  • [Best Practices](#best-practices)

Overview

Comprehensive guide to API versioning approaches, deprecation strategies, backward compatibility techniques, and migration planning for REST APIs, GraphQL, and gRPC services.

When to Use

  • Designing new APIs with versioning from the start
  • Adding breaking changes to existing APIs
  • Deprecating old API versions
  • Planning API migrations
  • Ensuring backward compatibility
  • Managing multiple API versions simultaneously
  • Creating API documentation for different versions
  • Implementing API version routing

Quick Start

Minimal working example:

// express-router.ts

import express from "express";

const app = express();

// Version 1

app.get("/api/v1/users", (req, res) => {

  res.json({

    users: [{ id: 1, name: "John Doe" }],

  });

});

// Version 2 - Added email field

app.get("/api/v2/users", (req, res) => {

  res.json({

    users: [{ id: 1, name: "John Doe", email: "john@example.com" }],

  });

});

// Shared logic with version-specific transformations

app.get("/api/:version/users/:id", async (req, res) => {

  const user = await userService.findById(req.params.id);

  if (req.params.version === "v1") {

    res.json({ id: user.id, name: user.name });

// ... (see reference guides for full implementation)

Reference Guides

Detailed implementations in the references/ directory:

GuideContents
Versioning ApproachesVersioning Approaches
Backward Compatibility PatternsBackward Compatibility Patterns
Deprecation StrategyDeprecation Strategy
Migration Guide ExampleMigration Guide Example
Response StructureResponse Structure
Date FormatDate Format, Error Format
JavaScript/TypeScriptJavaScript/TypeScript, Python
GraphQL VersioningGraphQL Versioning
gRPC VersioninggRPC Versioning
Version Detection & RoutingVersion Detection & Routing
Testing Multiple VersionsTesting Multiple Versions
Pattern 1: Version-Agnostic CorePattern 1: Version-Agnostic Core, Pattern 2: Feature Flags for Gradual Rollout, Pattern 3: API Version Metrics

Best Practices

✅ DO

  • Version from day one (even if v1)
  • Document breaking vs non-breaking changes
  • Provide clear migration guides with code examples
  • Use semantic versioning principles
  • Give 6-12 months deprecation notice
  • Monitor usage of deprecated APIs
  • Send deprecation warnings to API consumers
  • Support at least 2 versions simultaneously
  • Use adapters/transformers for version logic
  • Test all supported versions
  • Log which API version is being used
  • Provide migration tooling when possible
  • Be consistent with versioning approach

❌ DON'T

  • Change API behavior without versioning
  • Remove versions without notice
  • Support too many versions (>3)
  • Use different versioning strategies in same API
  • Break APIs without incrementing version
  • Forget to update documentation
  • Deprecate too quickly (<6 months)
  • Ignore feedback from API consumers
  • Make every change a new version
  • Use version numbers inconsistently
BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card