从 Go HTTP 客户端迁移到 Atlas Go SDK
使用本指南从GoGoHTTP HTTP客户端( go-client- MongoDBMongoDB -atlas )迁移到Atlas GoAtlasGo SDK (MongoDB MongoDB /atlas-sdk-go )。
go-client-mongodb-atlas 已弃用,且不会收到主要功能更新。我们强烈建议迁移到 Atlas Go SDK 了解最新更改。您也可以同时使用这两个库来进行部分迁移。
背景
AtlasGoSDK (MongoDB /atlas-sdk-go )基于Atlas AdminAPI V2 。AtlasGoSDK 将版本化API API作为Go 方法公开,从而简化了版本化 的复杂性。主要 SDK 版本只能在Atlas Admin API端点的一小部分子集中引入重大更改。
结构性变更
Atlas Go SDK 不依赖已弃用的 go-client-mongodb-atlas 。它改变了 API 请求的发出方式,但最大限度地减少了最终用户所需的更改。
客户端初始化
Atlas Go SDK 有不同的方法来初始化客户端:
// Surrounding code ignored for brevity sdk, err := admin.NewClient( // Authentication using ApiKey and ApiSecret admin.UseDigestAuth(apiKey, apiSecret))
注意:已弃用的 go-client-mongodb-atlas Atlas Go SDK 使用基于摘要式的身份验证。同样的凭证也适用。
要学习;了解更多信息,请参阅使用Atlas Go SDK 进行身份验证。
Error Handling
错误处理要求开发者使用专用方法将错误转换为 API 错误对象:
// Surrounding code omitted for brevity apiErr, _ := admin.AsError(err) log.Fatalf("Error when performing SDK request: %v", apiErr.GetDetail())
要了解更多信息,请参阅错误处理。
API 接口的格式
Atlas Go SDK 更改了 API 接口,以将 API 与其他方法区分开来。
每个 API 方法都有一个 API 后缀。 例如:
sdk.Projects
现在将 sdk.ProjectsApi
现在,每个方法都会解释创建的对象。 例如:
sdk.Projects.create()
将成为 sdk.ProjectsApi.createProject(...)
要了解更多信息,请参阅 端点文档。
SDK 方法的不同命名约定
模型名称和属性采用 PascalCase 格式,以使方法和字段名称清晰且可预测。 例如, ClusterAWSProviderSettings现在将变为ClusterAwsProviderSettings 。
这同样适用于属性名称。 例如, ID
字段将变为Id
等。
创建请求正文对象时的多个选择
Atlas Go SDK 提高了请求和响应对象的清晰度。 对于端点接受多种格式的有效负载(多态性)的情况,您可以指定要用于特定请求的 API 模型的实例。 例如,在创建集群时,您可以使用专用的 RegionConfigs 对象(AWSRegionConfig、GCPRegionConfig 等)之一:
// Surrounding code omitted for brevity RegionConfig{ // Dedicated region config for AWS cloud AWSRegionConfig: &mongodbatlas.AWSRegionConfig{ //AWS-specific fields are here RegionName: ®ionName, }, }