Stable API
Observação
O recurso API estável requer MongoDB Server 5.0 ou posterior.
Use o recurso Stable API somente se ele for suportado por todos os servidores do MongoDB aos quais você está se conectando.
Visão geral
Neste guia, você pode aprender a especificar a API estável ao se conectar a uma instância do MongoDB ou a um conjunto de réplicas. Você pode usar o recurso API estável para forçar o servidor a executar operações com comportamento compatível com a versão da API especificada. Uma versão da API define o comportamento esperado das operações que ela cobre e o formato das respostas do servidor. Se você alterar para uma versão de API diferente, as operações não terão garantia de serem compatíveis e as respostas do servidor não terão garantia de serem semelhantes.
Quando você usa o recurso API estável com um driver oficial do MongoDB, você pode atualizar seu driver ou servidor sem se preocupar com compatibilidade com versões anteriores problemas dos comandos cobertos pela API estável.
Consulte a página de referência do MongoDB na Stable API para obter mais informações, incluindo uma lista de comandos que ela abrange.
As seções a seguir descrevem como você pode habilitar a API estável para seu cliente MongoDB e as opções que você pode especificar.
Habilitar a API estável em um cliente MongoDB
Para habilitar a stable API, você deve especificar uma versão da API nas configurações do seu cliente MongoDB. Depois de instanciar uma instância do MongoClient
com uma versão de API especificada, todos os comandos que você executa com esse cliente usam essa versão da API estável.
Dica
Se você precisar executar comandos usando mais de uma versão da stable API, instancie um cliente separado com essa versão.
Se você precisar executar comandos não cobertos pela stable API, certifique-se de que a opção "strict" esteja desativada. Consulte a seção sobre opções destable API para obter mais informações.
O exemplo a seguir mostra como você pode instanciar um MongoClient
que define a versão da stable API e se conecta a um servidor executando as seguintes operações:
Construa uma instância
ServerApi
usando a classe auxiliarServerApi.Builder
.Especifique uma versão de API estável usando uma constante da classe
ServerApiVersion
.Construa uma instância
MongoClientSettings
usando a classeMongoClientSettings.Builder
.Especifique um servidor para se conectar usando uma instância
ServerAddress
.Instancie um
MongoClient
utilizando o métodoMongoClient.create()
e passe sua instância doMongoClientSettings
como um parâmetro.
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)
Aviso
Se você especificar uma versão da API e se conectar a um MongoDB Server que não é compatível com a stable API, sua aplicação poderá gerar uma exceção ao executar um comando no MongoDB Server. Se você usar um MongoClient
que especifica a versão da API para consultar um servidor que não a suporta, sua query poderá falhar com uma mensagem de exceção que inclui o seguinte texto:
'Unrecognized field 'apiVersion' on server...
Para obter mais informações sobre os métodos e as classes mencionadas nesta seção, consulte a seguinte documentação da API:
Opções de API estáveis
Você pode habilitar ou desabilitar o comportamento opcional relacionado à API estável como descrito na tabela a seguir.
Nome da opção | Descrição |
---|---|
Strict | Optional. When set, if you call a command that is not part of the declared API version, the driver raises an exception. Default: false |
deprecationErrors | Optional. When set, if you call a command that is deprecated in the declared API version, the driver raises an exception. Default: false |
O exemplo a seguir mostra como você pode definir as duas opções em uma instância de ServerApi
encadeando métodos no ServerApi.Builder
:
val serverApi = ServerApi.builder() .version(ServerApiVersion.V1) .strict(true) .deprecationErrors(true) .build()
Para obter mais informações sobre as opções nesta seção, consulte a seguinte documentação da API: