Menu Docs

Migrar do Go HTTP Client para o Atlas Go SDK

Use this guide to migrate from the Go HTTP client ( go-client-mongodb-atlas ) to the Atlas Go SDK ( mongodb/atlas-sdk-go ).

The go-client-mongodb-atlas is deprecated and doesn't receive major feature updates. We strongly recommend migrating to the Atlas Go SDK for the latest changes. You can also migrate partially by using both libraries at the same time.

The Atlas Go SDK ( mongodb/atlas-sdk-go ) is based on the Atlas Admin API V2. The Atlas Go SDK simplifies the complexity of the versioned API by exposing the versioned API as Golang methods. Major SDK releases can introduce breaking changes only in a small subset of the Atlas Admin API endpoints.

O Atlas Go SDK não depende do obsoleto go-client-mongodb-atlas. Ele altera a forma como as solicitações da API são feitas, mas minimiza as alterações necessárias para os usuários finais.

O Atlas Go SDK tem métodos diferentes para a inicialização dos clientes:

// Surrounding code ignored for brevity
sdk, err := admin.NewClient(
// Authentication using ApiKey and ApiSecret
admin.UseDigestAuth(apiKey, apiSecret))

Observação: os documentos obsoletos go-client-mongodb-atlas e o Atlas Go SDK usam autenticação baseada em Digest. As mesmas credenciais se aplicam.

Para saber mais,consulte Autenticação com o Atlas Go SDK.

O tratamento de erros exige que os desenvolvedores usem métodos dedicados para converter erros para objetos de erro da API:

// Surrounding code omitted for brevity
apiErr, _ := admin.AsError(err)
log.Fatalf("Error when performing SDK request: %v", apiErr.GetDetail())

Para saber mais, consulte Tratamento de erros.

O Atlas Go SDK altera a interface da API para diferenciar as APIs de outros métodos.

Cada método de API tem um sufixo de API. Por exemplo:

sdk.Projects agora sdk.ProjectsApi

Cada método agora explica o objeto que é criado. Por exemplo:

sdk.Projects.create() se tornará sdk.ProjectsApi.createProject(...)

Para saber mais, consulte a Documentação do endpoint.

Os nomes e propriedades dos modelos são formatados no formato PascalCase para maior clareza e previsibilidade dos métodos e nomes dos campos. Por exemplo, ClusterAWSProviderSettings se tornará agora ClusterAwsProviderSettings.

O mesmo se aplica aos nomes das propriedades. Por exemplo, os campos ID se tornarão Id e etc.

O Atlas Go SDK melhora a clareza dos objetos de solicitação e resposta. Para situações em que o endpoint aceita vários formatos da carga útil ( polimorfismo ), você pode especificar instâncias dos modelos de API que deseja usar para uma solicitação específica. Por exemplo, ao criar um cluster, você pode usar um dos objetos dedicados RegiãoConfigs (AWSRegionConfig, GCPRegionConfig, etc.):

// Surrounding code omitted for brevity
RegionConfig{
// Dedicated region config for AWS cloud
AWSRegionConfig: &mongodbatlas.AWSRegionConfig{
//AWS-specific fields are here
RegionName: &regionName,
},
}