Stable API
On this page
Note
The Stable API feature requires MongoDB Server 5.0 or later.
Overview
In this guide, you can learn how to specify Stable API compatibility when connecting to a MongoDB deployment.
The Stable API feature forces the server to run operations with behaviors compatible with the API version you specify. Using the Stable API ensures consistent responses from the server and provides long-term API stability for your application.
The following sections describe how you can enable and customize Stable API for your MongoDB client. For more information about the Stable API, including a list of the commands it supports, see Stable API in the MongoDB Server manual.
Enable the Stable API
To enable the Stable API, perform the following steps:
Construct a
ServerApi
object and specify a Stable API version. You must use a Stable API version defined in theServerApiVersion
enum.Construct a
MongoClientSettings
object using theMongoClientSettings.Builder
class.Instantiate a
MongoClient
using theMongoClient.create()
method and pass yourMongoClientSettings
instance as a parameter.
The following code example shows how to specify Stable API version 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>" val settings = MongoClientSettings.builder() .applyConnectionString(ConnectionString(uri)) .serverApi(serverApi) .build() val client = MongoClient.create(settings)
Once you create a MongoClient
instance with
a specified API version, all commands you run with the client use the specified
version. If you must run commands using more than one version of the
Stable API, create a new MongoClient
.
Configure the Stable API
The following table describes the parameters of the ServerApi
class. You can use these
parameters to customize the behavior of the Stable API.
Option Name | Description |
---|---|
strict | Optional. When True , if you call a command that isn't part of
the declared API version, the driver raises an exception.Default: False |
deprecationErrors | Optional. When True , if you call a command that is deprecated in the
declared API version, the driver raises an exception.Default: False |
The following code example shows how you can set the two options on an instance of ServerApi
by chaining methods on the ServerApi.Builder
:
val serverApi = ServerApi.builder() .version(ServerApiVersion.V1) .strict(true) .deprecationErrors(true) .build()
Troubleshooting
Unrecognized field 'apiVersion' on server
The Kotlin Sync driver raises this exception if you specify an API version and connect to a MongoDB server that doesn't support the Stable API. Ensure you're connecting to a deployment running MongoDB Server v5.0 or later.
Provided apiStrict:true, but the command count is not in API Version
The Kotlin Sync driver raises this exception if your MongoClient
runs an operation that
isn't in the Stable API version you specified. To avoid this error, use an alternative
operation supported by the specified Stable API version, or set the strict
option to False
when constructing your ServerApi
object.
API Documentation
For more information about using the Stable API with the Kotlin Sync driver, see the following API documentation: