Stable API
項目一覧
注意
Stable API 機能には MongoDB Server 5.0 以降が必要です。
Overview
このガイドでは、MongoDB 配置に接続するときにStable API互換性を指定する方法を学習できます。
Stable API 機能を使用すると、指定された API バージョンと互換性のある動作でサーバーに操作が強制的に実行されます。 Stable API を使用すると、サーバーからの一貫した応答が確保され、アプリケーションの API の長期的な安定性が確保されます。
次のセクションでは、MongoDB クライアントの Stable API を有効にしてカスタマイズする方法について説明します。 サポートするコマンドのリストを含む、Stable API Stable APIの詳細については、MongoDB Server マニュアルの を参照してください。
Stable API を有効にする
Stable API を有効にするには、次の手順を実行します。
ServerApi
オブジェクトを作成し、Stable API バージョンを指定します。ServerApiVersion
列挙型で定義された Stable API バージョンを使用する必要があります。MongoClientSettings.Builder
クラスを使用してMongoClientSettings
オブジェクトを構築します。コンストラクターを使用し、
MongoClientSettings
インスタンスをパラメーターとして渡して、MongoClient
をインスタンス化します。
次のコード例は、Stable API バージョン1を指定する方法を示しています。
val serverApi = ServerApi.builder() .version(ServerApiVersion.V1) .build() // Replace the uri string placeholder with your MongoDB deployment's connection string val uri = "<connection string URI>" val settings = MongoClientSettings.builder() .applyConnectionString(ConnectionString(uri)) .serverApi(serverApi) .build() val mongoClient = MongoClient(settings)
指定されたAPIバージョンで MongoClient
インスタンスを作成すると、クライアントで実行するすべてのコマンドが指定されたバージョンを使用します。 Stable APIの複数のバージョンを使用してコマンドを実行する必要がある場合は、新しい MongoClient
を作成します。
Stable API の構成
次の表では、ServerApi
クラスからメソッドを呼び出すことで設定できる Stable APIオプションについて説明します。これらのオプションを使用して、 Stable APIの動作をカスタマイズできます。
オプション名 | 説明 |
---|---|
厳密 | Optional. When true , if you call a command that isn't part of
the declared API version, the driver raises an exception.Default: false |
deleteErrors | Optional. When true , if you call a command that is deprecated in the
declared API version, the driver raises an exception.Default: false |
次のコード例は、 ServerApi.Builder
のメソッドを連鎖させて、 ServerApi
のインスタンスに 2 つのオプションを設定する方法を示しています。
val serverApi = ServerApi.builder() .version(ServerApiVersion.V1) .strict(true) .deprecationErrors(true) .build()
トラブルシューティング
サーバー上の認識されないフィールド 'apiVersion'
APIバージョンを指定し、 Stable API をサポートしていないMongoDBサーバーに接続すると、 Scalaドライバーはこの例外を発生させます。 MongoDB Server v5.0 以降を実行中配置に接続していることを確認してください。
apiStrict:true は提供されていますが、コマンド数は API バージョンではありません
指定した Stable APIバージョンに含まれない操作をMongoClient
が実行する場合、 Scalaドライバーはこの例外を発生させます。このエラーを回避するには、指定された Stable APIバージョンでサポートされている別の操作を使用するか、ServerApi
オブジェクトの構築時に strict
オプションを false
に設定します。
API ドキュメント
Scalaドライバーで Stable API を使用する方法の詳細については、次のAPIドキュメントを参照してください。