Utilice esta guía para migrar desde el cliente HTTP de Go ( go-client-mongodb-atlas ) al SDK Atlas Go ( mongodb/atlas-sdk-go ).
La biblioteca go-client-mongodb-atlas está obsoleta y no recibe actualizaciones importantes de funciones. Recomendamos encarecidamente migrar al SDK de Atlas Go para obtener los cambios más recientes. También puede realizar una migración parcial usando ambas bibliotecas simultáneamente.
Segundo plano
El SDK de Atlas Go(mongodb/atlas-sdk-go) se basa en la API de administración de Atlas2 V. Este SDK simplifica la complejidad de la API versionada al exponerla como métodos de Golang. Las versiones principales del SDK pueden introducir cambios importantes solo en un pequeño subconjunto de los puntos de conexión 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 obsoleto go-client-mongodb-atlas como el SDK de Atlas Go utilizan autenticación basada en Digest. Se aplican las mismas credenciales.
Para obtener más información, consulte 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 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, consulte Manejo de errores.
Formato de la interfaz API
El SDK Atlas Go cambia la interfaz 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 explica ahora el objeto creado. Por ejemplo:
sdk.Projects.create() se convertirá sdk.ProjectsApi.createProject(...)
Para obtener más información, consulte la Documentación de puntos finales.
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 ocurre con los nombres de propiedad. Por ejemplo, los campos ID se convertirán en Id, etc.
Múltiples opciones al crear objetos del cuerpo de la solicitud
El SDK de Atlas Go mejora la claridad de los objetos de solicitud y respuesta. En situaciones en las que el punto final acepta múltiples formatos de carga útil (polimorfismo), puede especificar instancias de los modelos de API que desee usar para una solicitud específica. Por ejemplo, al crear un clúster, puede usar uno de los objetos RegionConfig dedicados (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, }, }