Usa esta guía para migrar desde el cliente HTTP de Go ( go-cliente-mongodb-atlas ) al Atlas Go SDK ( mongodb/atlas-sdk-go ).
El go-client-mongodb-atlas ha quedado obsoleto y no recibe actualizaciones importantes de funcionalidades. Recomendamos encarecidamente migrar al Atlas Go SDK para los últimos cambios. También puedes migrar parcialmente usando ambas librerías al mismo tiempo.
Segundo plano
El Atlas Go SDK ( mongodb/atlas-sdk-go ) se basa en la API administrativa de Atlas V2. El Go SDK de Atlas simplifica la complejidad de la API versionada al exponerla como métodos Golang. Los grandes lanzamientos del SDK sólo pueden introducir cambios disruptivos en un pequeño subconjunto de los endpoints de la API de administración de Atlas.
Cambios estructurales
El SDK de Atlas Go no depende del obsoleto go-client-mongodb-atlas. Cambia la forma en que se realizan las solicitudes de API, pero minimiza los cambios necesarios para los usuarios finales.
Inicialización del Cliente
El SDK Atlas Go tiene diferentes métodos para la inicialización de los clientes:
// Surrounding code ignored for brevity sdk, err := admin.NewClient( // Authentication using ApiKey and ApiSecret admin.UseDigestAuth(apiKey, apiSecret))
Nota: Tanto el go-client-mongodb-atlas obsoleto como el Atlas Go SDK utilizan la autenticación basada en Digest. Se aplican las mismas credenciales.
Para aprender más, Autenticación con el SDK Atlas Go.
Error Handling
El manejo de errores requiere que los desarrolladores utilicen métodos dedicados para convertir errores en objetos de error de la API:
// Surrounding code omitted for brevity apiErr, _ := admin.AsError(err) log.Fatalf("Error when performing SDK request: %v", apiErr.GetDetail())
Para obtener más información, consulta Manejo de errores.
Formato de la interfaz de api
El Atlas Go SDK cambia la interfaz de la API para diferenciar las API de otros métodos.
Cada método API tiene un sufijo API. Por ejemplo:
sdk.Projects ahora sdk.ProjectsApi
Cada método ahora explica el objeto que se crea. Por ejemplo:
sdk.Projects.create() se convertirá en sdk.ProjectsApi.createProject(...)
Para aprender más, consulta la documentación de Endpoint.
Diferentes convenciones de nomenclatura para los métodos del SDK
Los nombres de modelo y las propiedades se formatean en formato PascalCase para mayor claridad y previsibilidad de los métodos y nombres de campo. Por ejemplo, ClusterAWSProviderSettings se convertirá ahora en ClusterAwsProviderSettings.
Lo mismo aplica para los nombres de las propiedades. Por ejemplo, los campos ID se convertirán en Id, etc.
Opciones múltiples al crear objetos para el cuerpo de la solicitud
El SDK Atlas Go mejora la claridad de los objetos de solicitud y respuesta. En situaciones en las que el punto final acepta varios formatos de carga útil (polimorfismo), puedes especificar instancias de los modelos de API que deseas utilizar para una solicitud en particular. Por ejemplo, al crear un clúster puedes utilizar uno de los objetos dedicados RegionConfigs (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, }, }