Error Handling
Atlas Go SDK を使用すると、API によって返されるエラーに関する詳細情報を取得できます。 エラー コードを使用して、エラーの原因を特定します。 API エラー コードの詳細については、「 Atlas Administration API エラー コード 」を参照してください。
エラーは ApiErrorObject によって表されます。
エラー オブジェクトの取得
エラー オブジェクトを取得するには、次のコマンドを実行します。
// Surrounding code omitted for brevity projects, response, err := admin.ProjectsApi.ListProjects(ctx).Execute() apiError, ok := admin.AsError(err) fmt.Println(apiError)
特定のエラーコードの有無の確認
特定のエラーコード(例: MAXIMUM_INDEXES_FOR_TENANT_EXCEEDED
)は、次のコマンドを実行します。
// Surrounding code omitted for brevity projects, response, err := admin.ProjectsApi.ListProjects(ctx).Execute() if admin.IsErrorCode(err, "code"){ // Do something }
特定の応答ステータス コードの存在を確認
特定の HTTP レスポンス エラー コードの有無を確認するには、次のコマンドを実行します。
// Surrounding code omitted for brevity projects, response, err := admin.ProjectsApi.ListProjects(ctx).Execute() apiError, ok := admin.AsError(err) if ok && apiError.GetError() == 404 { // Do something }
モック作成エラー
SDK エラーは、 GenericOpenAPIError
構造体のインスタンスを作成することでモックできます。
// Surrounding code omitted for brevity apiError := admin.GenericOpenAPIError{} apiError.SetModel(admin.ApiError{ Detail: admin.PtrString("Error when listing clusters"), Error: admin.PtrInt(400), ErrorCode: admin.PtrString("CLUSTERS_UNREACHABLE"), Reason: admin.PtrString("Clusters unreachable"), }) apiError.SetError("Mocked error")
すべての SDK モックされたメソッドで構造体をerror
として渡すことができます。