API バージョニング
APIバージョンの変更を適切に管理し、後方互換性を維持します。Omiseのバージョニング戦略、バージョンの指定方法、アップグレードのベストプラクティスについて学びます。
概要
Omiseは、既存の統合を破壊することなく改善を導入するために、日付ベースのAPIバージョニングを使用しています。各バージョンはリリース日(YYYY-MM-DD形式)で命名されます。統合で使用するAPIバージョンを制御して、安定性を確保し、独自のスケジュールでアップグレードを計画できます。
クイックスタート
- 現在のバージョン:
2019-05-29 - バージョンを指定するには
Omise-Versionヘッダーを使用 - ヘッダーなし = アカウントのデフォルトバージョン
- バージョンは決して変更されません - 統合は安定したまま
- 新機能が必要な場合にアップグレードを計画
現在のAPIバージョン
最新バージョン: 2019-05-29
リリース日: May 29, 2019
これはOmise APIの現在の安定版です。すべての新しい統合はこのバージョンを使用する必要があります。
curl https://api.omise.co/charges \
-u skey_test_...: \
-H "Omise-Version: 2019-05-29"
バージョニングの仕組み
バージョン形式
Omise APIバージョンは日付ベースの命名を使用します:
YYYY-MM-DD
例:
2019-05-29- May 29, 2019リリース2017-11-02- November 2, 2017リリース2015-11-17- November 17, 2015リリース
APIバージョンの指定
APIバージョンは2つの方法で指定できます:
1. リクエストごとのヘッダー(推奨)
Omise-Versionヘッダーを使用します:
curl https://api.omise.co/charges \
-u skey_test_...: \
-H "Omise-Version: 2019-05-29" \
-X POST \
-d "amount=100000" \
-d "currency=thb"
メリット:
- ✅ リクエストごとに明示的なバージョン管理
- ✅ 新しいバージョンのテストが簡単
- ✅ 異なる操作に異なるバージョンを使用可能
- ✅ アカウントのデフォルトを上書き
2. アカウント Default Version
ダッシュボードでデフォルトバージョンを設定します:
- Omise Dashboardにログイン
- Settings → API Versionに移動
- バージョンを選択
- 保存
Omise-Versionヘッダーのないすべてのリクエストは、このバージョンを使用します。
バージョンの動作
バージョンの仕組み
- バージョンは不変 - バージョンの動作は決して変更されません
- 新しいバージョンは変更を導入 - 破壊的変更は新しいバージョンでのみ
- アップグレードを制御 - 新しいバージョンに明示的にオプトイン
- 古いバージョンをサポート - レガシーバージョンは引き続き利用可能
例 Timeline
2015-11-17 → 統合を構築
↓
2017-11-02 → 新しいバージョンをリリース
↓ (統合は引き続き2015-11-17を使用)
↓
2019-05-29 → 新しいバージョンをリリース
↓ (統合は引き続き2015-11-17を使用)
↓
今日 → 2019-05-29にアップグレード
↓ (準備ができたらオプトイン)
コードでのバージョン指定
Ruby
require 'omise'
Omise.api_key = ENV['OMISE_SECRET_KEY']
Omise.api_version = '2019-05-29'
# すべてのリクエストは指定されたバージョンを使用
charge = Omise::Charge.create({
amount: 100000,
currency: 'thb',
card: token
})
Python
import omise
omise.api_secret = os.environ['OMISE_SECRET_KEY']
omise.api_version = '2019-05-29'
# すべてのリクエストは指定されたバージョンを使用
charge = omise.Charge.create(
amount=100000,
currency='thb',
card=token
)
PHP
<?php
require_once 'vendor/autoload.php';
define('OMISE_SECRET_KEY', getenv('OMISE_SECRET_KEY'));
define('OMISE_API_VERSION', '2019-05-29');
OmiseCharge::create([
'amount' => 100000,
'currency' => 'thb',
'card' => $token
]);
Node.js
const omise = require('omise')({
secretKey: process.env.OMISE_SECRET_KEY,
omiseVersion: '2019-05-29'
});
// すべてのリクエストは指定されたバージョンを使用
const charge = await omise.charges.create({
amount: 100000,
currency: 'thb',
card: token
});