Docs Menu

Stable API

注意

Stable API 機能には MongoDB Server 5.0 以降が必要です。

このガイドでは、MongoDB 配置に接続するときにStable API互換性を指定する方法を学習できます。

Stable API 機能を使用すると、指定された API バージョンと互換性のある動作でサーバーに操作が強制的に実行されます。 ドライバーまたはサーバーのいずれかを更新すると、API バージョンが変更され、これらの操作の動作が変わる可能性があります。 Stable API を使用すると、サーバーからの一貫した応答が確保され、アプリケーションの API の長期的な安定性が確保されます。

次のセクションでは、MongoDB クライアントの Stable API を有効にしてカスタマイズする方法について説明します。 Stable APIサポートするコマンドのリストを含むStable API の詳細については、MongoDB Server マニュアルの「 」を参照してください。

Stable API を有効にするには、次の手順を実行します。

  1. mongoc_server_api_tオブジェクトを構築し、Stable API バージョンを指定します。 mongoc_server_api_t列挙型で定義された Stable API バージョンを使用する必要があります。

  2. mongoc_client_tオブジェクトを構築します。

  3. クライアントと Stable APIオブジェクトを mongoc_client_set_server_api 関数に渡します。

次のコード例は、Stable API バージョン1を指定する方法を示しています。

#include <mongoc/mongoc.h>
int main ()
{
bson_error_t error;
mongoc_init ();
mongoc_server_api_t *stable_api = mongoc_server_api_new (MONGOC_SERVER_API_V1);
mongoc_client_t *client = mongoc_client_new ("<connection string>");
if (!mongoc_client_set_server_api (client, stable_api, &error))
{
fprintf (stderr, "Failed to set Stable API: %s\n", error.message);
return EXIT_FAILURE;
}
// Use the client for operations...
mongoc_server_api_destroy (stable_api);
mongoc_cleanup ();
return EXIT_SUCCESS;
}

指定されたAPIバージョンでクライアントインスタンスを作成すると、クライアントで実行されるすべてのコマンドで指定されたバージョンが使用されます。 Stable APIの複数のバージョンを使用してコマンドを実行する必要がある場合は、新しいクライアントを作成します 。

次の表では、ServerApiクラスのオプションについて説明しています。これらのオプションを使用して、 Stable APIの動作をカスタマイズできます。

オプション名
説明

厳密

任意trueの場合、宣言した API バージョンに含まれないコマンドを呼び出すと、ドライバーは例外を発生させます。

デフォルト: false

delete_errors

任意trueの場合、宣言した API バージョンで非推奨のコマンドを呼び出すと、ドライバーは例外を発生させます。

デフォルト: false

次のコード例は、ServerApiオブジェクトを構築するときに両方のオプションを true に設定する方法を示しています。

mongoc_server_api_t *stable_api = mongoc_server_api_new (MONGOC_SERVER_API_V1);
mongoc_server_api_strict (stable_api, true);
mongoc_server_api_deprecation_errors (stable_api, true);
mongoc_client_t *client = mongoc_client_new ("<connection string>");
if (!mongoc_client_set_server_api (client, stable_api, &error)) {
fprintf (stderr, "Failed to set Stable API: %s\n", error.message);
return EXIT_FAILURE;
}

Cドライバーで Stable APIを使用する方法の詳細については、次のAPIドキュメントを参照してください。