Error Handling
Você pode obter informações detalhadas sobre erros retornados pela API ao usar o Atlas Go SDK. Use o código de erro para determinar a causa do erro. Para saber mais sobre os códigos de erro da API, consulte Códigos de erro da API de administração do Atlas.
Os erros são representados por ApiErrorObject.
Buscando objeto de erro
Para buscar o objeto de erro, execute o seguinte:
// Surrounding code omitted for brevity projects, response, err := admin.ProjectsApi.ListProjects(ctx).Execute() apiError, ok := admin.AsError(err) fmt.Println(apiError)
Verificando a existência de um código de erro específico
Para verificar a existência de um código de erro específico (por exemplo MAXIMUM_INDEXES_FOR_TENANT_EXCEEDED
), execute o seguinte:
// Surrounding code omitted for brevity projects, response, err := admin.ProjectsApi.ListProjects(ctx).Execute() if admin.IsErrorCode(err, "code"){ // Do something }
Verificando a existência de um código de status de resposta específico
Para verificar a existência de um código de erro de resposta HTTP específico, execute o seguinte:
// 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 }
Zombando de erros
Os erros do SDK podem ser simulados criando uma instância da estrutura 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")
A estrutura pode ser passada como error
para todos os métodos simulados do SDK.