Utiliza esta guía para migrar del cliente HTTP de Go ( go-client-mongodb-atlas ) al Atlas Go SDK ( mongodb/atlas-sdk-go ).
El go-cliente-mongodb-atlas está obsoleto y no recibe grandes actualizaciones 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 SDK de Atlas para Go (mongodb/atlas-sdk-go) se basa en la API de administración deAtlas2 V. Este SDK simplifica la complejidad de la API versionada al exponerla como métodos de Golang. Las versiones principales del SDK solo pueden introducir cambios incompatibles en un pequeño subconjunto de los puntos finales de la API de administración de Atlas.
Cambios estructurales
El SDK de Atlas Go no depende del obsoleto go-client-mongodb-atlas. Cambia cómo se realizan las solicitudes de la API, pero minimiza los cambios requeridos para los usuarios finales.
Inicialización del Cliente
El Go SDK de Atlas 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 en desuso como el SDK de Atlas Go utilizan autenticación basada en resumen. Se aplican las mismas credenciales.
Para obtener más información, consulta Autenticación con el Atlas Go SDK.
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 obtener más información, consulta la documentación del punto final.
Diferentes convenciones de nomenclatura para los métodos del SDK
Los nombres de modelos y las propiedades se formatean en formato PascalCase por claridad y previsibilidad de los métodos y los nombres de campos. Por ejemplo, ClusterAWSProviderSettings ahora se convertirá 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, }, }