0Pricing
C# Academy · レッスン

APIバージョニング戦略

URL、ヘッダー、クエリ文字列でバージョンを指定します。

「APIバージョニング戦略」はCoddyKit上の無料C# Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはC# Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 C# Academyコースには全4レッスンが含まれています。

API をバージョン管理する理由

クライアントが API に依存するようになると、その契約を破壊することはできません。バージョン管理を使うと、互換性を壊す変更を新しいバージョンで提供しながら、古いクライアントは従来のバージョンを使い続けられます。

// v1 returns { name }
// v2 returns { firstName, lastName }  (breaking)

URL パスによるバージョン管理

最も分かりやすい方法は、バージョンをパスに含めることです。曖昧さがなく、ルーティング、閲覧、キャッシュも簡単です。

GET /api/v1/products
GET /api/v2/products

クエリ文字列によるバージョン管理

バージョンをクエリパラメーターとして渡します。URL は安定したままになり、パラメーターがない場合は最新バージョンまたは固定バージョンをデフォルトにできます。

GET /api/products?api-version=1.0
GET /api/products?api-version=2.0

ヘッダーによるバージョン管理

カスタムのリクエストヘッダーにバージョンを含めることで、URL をすっきり保てます。一方で、ブラウザーのアドレスバーからは確認できず、手動でのテストも難しくなります。

GET /api/products
X-Api-Version: 2.0

メディアタイプによるバージョン管理

コンテントネゴシエーションとも呼ばれます。バージョンを Accept ヘッダーのメディアタイプに埋め込みます。最も REST に忠実ですが、最も発見しにくい方法です。

GET /api/products
Accept: application/json;v=2.0

方式の比較

各方式は、見つけやすさと URL の簡潔さのバランスを取ります。

  • URL パス:最も見つけやすい一方、URL が複雑になります。
  • クエリ文字列:URL が安定し、デフォルトを簡単に設定できます。
  • ヘッダー:URL はすっきりしますが、ブラウザーからは見えません。
  • メディアタイプ:最も純粋な REST ですが、最も扱いにくい方法です。
// Many teams pick URL path for public APIs

API のセマンティックバージョニング

API のバージョンは通常、メジャーのみ(v1、v2)で管理します。マイナーバージョンは、古いクライアントが無視できる、追加的で互換性を壊さない変更のために使用します。

// v1.0 -> v1.1 : additive (safe)
// v1   -> v2   : breaking (new version)

非推奨化

古いバージョンを突然削除してはいけません。非推奨としてマークし、提供終了日を告知して、ヘッダーでクライアントに知らせます。

// Response header on a deprecated version:
// Sunset: Wed, 31 Dec 2026 23:59:59 GMT
// Deprecation: true

デフォルトバージョン

クライアントがバージョンを指定しなかった場合の動作を決めます。よくある選択肢は、最新バージョン、v1、またはリクエストの拒否です。動作を明示すると、予期しない問題を避けられます。

// Strategy: unversioned request -> treat as v1.0

適切な対象のバージョン管理

内部実装の詳細ではなく、契約(ルート、リクエストおよびレスポンスの形式)をバージョン管理します。v2 のエンドポイントでも、ビジネスロジックの大部分を v1 と共有できます。

// Same service, two thin controllers:
// ProductsV1Controller, ProductsV2Controller

方式の組み合わせ

ASP.NET Core のバージョン管理ライブラリでは、複数のソースから同時にバージョンを読み取ることができます。クライアントは都合のよい方法を選択できます。次に、この設定方法を説明します。

// Accept version from URL OR header OR query

クイックチェック

バージョン管理の方式についての理解度を確認しましょう。

まとめ

API のバージョン管理方式について概観しました。

  • URL パス、クエリ文字列、ヘッダー、メディアタイプがあります。
  • 各方式は、見つけやすさと URL の簡潔さのバランスを取ります。
  • 契約をバージョン管理し、適切に非推奨化し、デフォルトを定義します。

次は、ASP.NET Core での Asp.Versioning の設定です。

よくある質問

「APIバージョニング戦略」レッスンは無料ですか?

はい。「APIバージョニング戦略」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、C# Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 C# Academyコースには全4レッスンが含まれています。

「APIバージョニング戦略」で何を学びますか?

URL、ヘッダー、クエリ文字列でバージョンを指定します。 ブラウザで直接実行するハンズオンコードでC# Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

C# Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのC# Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「APIバージョニング戦略」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このC# Academyレッスンでコードを書いて実行できますか?

はい。すべてのC# Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. APIバージョニング戦略
  2. Asp.Versioningの設定
  3. OpenAPIドキュメントの生成
  4. バージョン管理されたAPIのドキュメント化
← C# Academyに戻る