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.
Plano de fundo
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.
Mudanças estruturas
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.
Inicialização do cliente
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.
Error Handling
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.
Formato da interface da API
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.
Diferentes convenções de nomenclatura para métodos do SDK
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.
Várias opções ao criar objetos do corpo da solicitação
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: ®ionName, }, }