Stable API
重要
Stable API 機能を使用するには、MongoDB Server バージョン 5.0 以降を実行している配置に接続する必要があります。
Stable API 機能は、接続しているすべての MongoDB サーバーがこの機能をサポートしている場合にのみ使用してください。
Overview
このガイドでは、MongoDB インスタンスまたはレプリカセットに接続するときにStable API互換性を指定する方法を学習できます。
Stable API 機能を使用すると、指定されたAPI バージョンと互換性のある動作で操作をサーバーが強制的に実行します。 API バージョンは、カバーされる操作に期待される動作とサーバー応答の形式を定義します。 指定する API バージョンによって、操作とサーバー応答が異なる場合があります。
公式の MongoDB ドライバーで Stable API 機能を使用すると、Stable API でカバーされるコマンドの下位互換性の問題を心配することなく、ドライバーまたはサーバーを更新できます。
サーバーがカバーするコマンドの詳細については、サーバー マニュアルの「 Stable API 」を参照してください。
API バージョンの指定
API バージョンを指定するには、 ServerApi
構造体を定義し、 ClientOptions
インスタンスのserver_api
フィールドをこの構造体に設定します。 ServerApi
構造体には API バージョンとオプションが含まれています。 設定オプションの詳細については、このガイドの「動作の変更 」セクションを参照してください。
API バージョンを指定すると、クライアントはそのバージョンに互換性のある操作のみを実行します。
注意
MongoDB Rust ドライバーは Stable API バージョン 1 のみをサポートします。
API バージョン仕様の例
次の例では、 Client
をインスタンス化し、サーバーに接続するときに Stable API バージョンを設定します。
let mut client_options = ClientOptions::parse(uri).await?; let server_api = ServerApi::builder().version(ServerApiVersion::V1).build(); client_options.server_api = Some(server_api); let client = Client::with_options(client_options)?;
動作の変更
Stable API 機能の動作を変更するには、 ServerApi
構造体でフィールドを設定します。
ServerApi
構造体のフィールドを手動で設定できますが、ビルダー設計パターンを使用して構造体をより効率的に定義できます。
注意
設定オプション
Rust ドライバーは、 ServerApi
構造体を含む一部の構造体タイプを作成するためのビルダ設計パターンを実装します。 各タイプのbuilder()
メソッドを使用して、オプション ビルダー関数を 1 つずつ連鎖させてオプション インスタンスを構築できます。
フィールド | 説明 |
---|---|
| (Required) The Stable API version to use. Specified with the ServerApiVersion enum. The only
accepted value is V1 .Type: ServerApiVersion |
| Indicates whether the server returns errors for features
that aren't part of the API version. Type: bool Default: false |
| Indicates whether the server returns errors for
deprecated features. Type: bool Default: false |
Stable API オプションの例
この例では、次の指定で Stable API 機能を有効にします。
Stable API バージョン 1 を使用
バージョン 1 に含まれていない機能のエラーを返します
非推奨の機能のエラーを返します
let mut client_options = ClientOptions::parse(uri).await?; let server_api = ServerApi::builder() .version(ServerApiVersion::V1) .strict(true) .deprecation_errors(true) .build(); client_options.server_api = Some(server_api); let client = Client::with_options(client_options)?;
詳細情報
MongoDB インスタンスまたはレプリカセットへの接続の詳細については、「接続ガイド 」を参照してください。
API ドキュメント
このガイドで言及されているメソッドとタイプの詳細については、次のAPIドキュメントを参照してください。