Go HTTP 클라이언트에서 Atlas Go SDK로 마이그레이션
이 가이드 를 Go HTTP 사용하여 고MongoDB (Go) HTTP Atlas Go 클라이언트 ( go-client- MongoDB -atlas )에서 Atlas 고MongoDB (Go) SDK( MongoDB /atlas-sdk-go )로 마이그레이션 하세요.
go-client-mongodb-atlas 은(는) 더 이상 사용되지 않으며 주요 기능 업데이트를 받지 못합니다. Atlas 고 (Go) SDK 로 마이그레이션할 것을 적극 권장합니다. 확인하세요. 두 라이브러리를 동시에 사용하여 부분적으로 마이그레이션 할 수도 있습니다.
배경
Atlas Go SDK( MongoDB/atlas-sdk-go )는 Atlas Admin API V 를 기반으로 합니다.2 SDK는 버전이 지정된 를 메서드로 노출하여 Atlas Go 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는 다이제스트 기반 인증을 사용합니다. 동일한 자격 증명이 적용됩니다.
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 메서드에 대한 다양한 명명 규칙
모델 이름과 속성은 메서드 및 필드 이름을 명확하고 예측할 수 있도록 파스칼 케이스 형식으로 지정됩니다. 예를 들어, ClusterAWSProviderSettings 는 이제 ClusterAwsProviderSettings 이 됩니다.
속성 이름에도 동일하게 적용됩니다. 예를 들어 ID
필드는 Id
등이 됩니다.
요청 본문 객체 생성 시 다중 선택 가능
Atlas Go SDK는 요청 및 응답 객체의 명확성을 개선합니다. 엔드포인트가 여러 형식의 페이로드를 허용하는 상황(다형성)의 경우, 특정 요청에 사용하려는 API 모델의 인스턴스를 지정할 수 있습니다. 예를 들어, cluster를 만들 때 전용 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, }, }