Migrar do Go HTTP Client para o Atlas Go SDK
Use este guia para migrar do cliente Go HTTP ( go-client-mongodb-atlas ) para o Atlas Go SDK ( mongodb/atlas-sdk-go ).
O comando go-client-mongodb-atlas está obsoleto e não recebe atualizações de recursos principais. É altamente recomendável migrar para o SDK do Atlas Go para as últimas alterações. Você também pode migrar parcialmente usando as duas bibliotecas ao mesmo tempo.
Plano de fundo
O Atlas Go SDK ( MongoDB/atlas-sdk-go ) é baseada na Atlas Admin API do2 V. O Atlas Go SDK simplifica a complexidade da API versionada, expondo a API versionada como métodos Go . As principais versões do SDK podem introduzir alterações significativas apenas em um pequeno subconjunto dos endpoints da API Atlas Admin.
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 Autenticar usando 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
será 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, }, }