api-versioning-strategy
Implement API versioning strategies including URL versioning, header versioning, backward compatibility, deprecation strategies, and migration guides. Use when dealing with API versions, deprecating endpoints, or managing breaking changes.
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o api-versioning-strategy.zip https://jpskill.com/download/21334.zip && unzip -o api-versioning-strategy.zip && rm api-versioning-strategy.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/21334.zip -OutFile "$d\api-versioning-strategy.zip"; Expand-Archive "$d\api-versioning-strategy.zip" -DestinationPath $d -Force; ri "$d\api-versioning-strategy.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
api-versioning-strategy.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
api-versioning-strategyフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 14
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
API バージョニング戦略
目次
概要
REST API、GraphQL、および gRPC サービスにおける API バージョニングのアプローチ、非推奨化戦略、後方互換性技術、および移行計画に関する包括的なガイドです。
使用場面
- バージョニングを最初から考慮した新しい API の設計
- 既存の API への破壊的変更の追加
- 古い API バージョンの非推奨化
- API 移行の計画
- 後方互換性の確保
- 複数の API バージョンの同時管理
- 異なるバージョン向けの API ドキュメントの作成
- API バージョンルーティングの実装
クイックスタート
最小限の動作例です。
// 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)
リファレンスガイド
references/ ディレクトリにある詳細な実装です。
| ガイド | 内容 |
|---|---|
| Versioning Approaches | バージョニングのアプローチ |
| Backward Compatibility Patterns | 後方互換性パターン |
| Deprecation Strategy | 非推奨化戦略 |
| Migration Guide Example | 移行ガイドの例 |
| Response Structure | レスポンス構造 |
| Date Format | 日付形式、エラー形式 |
| JavaScript/TypeScript | JavaScript/TypeScript、Python |
| GraphQL Versioning | GraphQL バージョニング |
| gRPC Versioning | gRPC バージョニング |
| Version Detection & Routing | バージョン検出とルーティング |
| Testing Multiple Versions | 複数バージョンのテスト |
| Pattern 1: Version-Agnostic Core | パターン 1: バージョンに依存しないコア、パターン 2: 段階的ロールアウトのための機能フラグ、パターン 3: API バージョンメトリクス |
ベストプラクティス
✅ するべきこと
- 初日からバージョン管理を行う(v1 であっても)
- 破壊的変更と非破壊的変更を文書化する
- コード例を含む明確な移行ガイドを提供する
- セマンティックバージョニングの原則を使用する
- 6〜12ヶ月の非推奨化通知期間を設ける
- 非推奨化された API の使用状況を監視する
- API コンシューマーに非推奨化警告を送信する
- 少なくとも 2 つのバージョンを同時にサポートする
- バージョンロジックにアダプター/トランスフォーマーを使用する
- サポートされているすべてのバージョンをテストする
- 使用されている API バージョンをログに記録する
- 可能な場合は移行ツールを提供する
- バージョニングアプローチに一貫性を持たせる
❌ するべきではないこと
- バージョン管理なしに API の動作を変更する
- 通知なしにバージョンを削除する
- あまりにも多くのバージョンをサポートする(3つ以上)
- 同じ API で異なるバージョニング戦略を使用する
- バージョンをインクリメントせずに API を破壊する
- ドキュメントの更新を忘れる
- 非推奨化を急ぎすぎる(6ヶ月未満)
- API コンシューマーからのフィードバックを無視する
- すべての変更を新しいバージョンにする
- バージョン番号を不整合に使用する
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
API Versioning Strategy
Table of Contents
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:
| Guide | Contents |
|---|---|
| Versioning Approaches | Versioning Approaches |
| Backward Compatibility Patterns | Backward Compatibility Patterns |
| Deprecation Strategy | Deprecation Strategy |
| Migration Guide Example | Migration Guide Example |
| Response Structure | Response Structure |
| Date Format | Date Format, Error Format |
| JavaScript/TypeScript | JavaScript/TypeScript, Python |
| GraphQL Versioning | GraphQL Versioning |
| gRPC Versioning | gRPC Versioning |
| Version Detection & Routing | Version Detection & Routing |
| Testing Multiple Versions | Testing Multiple Versions |
| Pattern 1: Version-Agnostic Core | Pattern 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
同梱ファイル
※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。
- 📄 SKILL.md (4,030 bytes)
- 📎 references/backward-compatibility-patterns.md (2,621 bytes)
- 📎 references/date-format.md (416 bytes)
- 📎 references/deprecation-strategy.md (2,643 bytes)
- 📎 references/graphql-versioning.md (641 bytes)
- 📎 references/grpc-versioning.md (566 bytes)
- 📎 references/javascripttypescript.md (662 bytes)
- 📎 references/migration-guide-example.md (100 bytes)
- 📎 references/pattern-1-version-agnostic-core.md (1,017 bytes)
- 📎 references/response-structure.md (408 bytes)
- 📎 references/testing-multiple-versions.md (1,622 bytes)
- 📎 references/version-detection-routing.md (1,698 bytes)
- 📎 references/versioning-approaches.md (2,098 bytes)
- 📎 scripts/validate-api.sh (440 bytes)