Passar para o conteúdo principal
Guia de Tratamento de Erros
Manuel Bernal avatar
Escrito por Manuel Bernal
Atualizado há mais de uma semana

Esta guia tem um conjunto de filtros em que você precisa especificar a regra de resposta. Se houver uma correspondência, a transação será considerada incorreta e um texto de erro personalizado também será gerado.

Você pode criar vários blocos separados de uma vez. Cada bloco pode ter seu próprio texto de erro. O bloco consiste em grupos de filtros e é acionado apenas se todos os filtros forem completamente correspondentes.

Assim, podem ser criados diversos blocos com condições de filtro e textos de erro específicos, ou um bloco com várias opções de filtro.


Tipos de erros



Para a definição do tipo de erro, os seguintes valores estão disponíveis:

Default - erro padrão. Se os dados corresponderem ao filtro, a transação é considerada inválida.

InvalidCredential - as condições que estão escritas neste tipo de erro indicam que o usuário está com problemas na conexão que é usada no bundle. Ou seja, os dados de autorização não estão mais válidos.

ExpiredToken - nesse tipo de erro, você precisa especificar no filtro o texto da resposta, o que significa que o token de acesso expirou e precisa ser atualizado. Se for usada a autorização, na qual você precisa atualizar o token de acesso após a expiração, esse tipo de erro é necessário. Quando as condições de um bloco com este tipo coincidirem, o aplicativo fará uma solicitação para atualizar o token (configurado na autorização) e o salvará na conexão. Em seguida, será feita uma tentativa de solicitação novamente com um novo token de acesso (após a atualização). Se o erro persistir mesmo após a tentativa de atualização, a transação será considerada incorreta e o texto do erro será exibido de acordo com o mapeamento.

Mapeamento de mensagem de erro



Neste campo, é escrito o texto que será exibido no log do bundle se ocorrer um erro. No campo, você pode inserir um valor estático ou atribuir um mapeamento à variável de resposta, cujo valor será exibido. O mapeamento deve ser escrito entre duas chaves {{ }}. No início você precisa escrever data., se a variável necessária estiver no corpo da resposta, ou headers., se a variável estiver nos cabeçalhos da resposta.

Veja o exemplo do texto de resposta com a seguinte descrição:

{"response":{ "error":"token invalido" }}


Nesse caso, o mapeamento deve ser especificado da seguinte forma: {{ data.response.error }}


Filtro de condições



Consiste na configuração das condições que indicam ao aplicativo que a solicitação é considerada inválida.

No campo esquerdo, escreva o mapeamento para a chave da variável que você deseja seguir (o mapeamento também deve começar com data. ou headers.). Selecione um operador de condição e, no campo à direita, especifique um valor de variável que indica um erro.

Você também pode definir o valor headers.http-code no campo esquerdo. Esta chave irá monitorar o código de resposta HTTP e você pode escrever 400 no valor, por exemplo.

Dentro de um bloco, é possível criar um número ilimitado de condições, definindo o operador entre as condições (E/OU). Cada condição também pode ser convertida em um grupo de condições para uma definição mais precisa. Por exemplo: status = erro 1 (result = mensagem1 OU result = mensagem2) ( status = erro E (result = erro1 OU result = erro2))

Exemplos

Exemplo 1



Vamos pegar o JSON do exemplo de mapeamento de erro. Se o JSON aparecer neste formato apenas quando houver um erro, após solicitações bem-sucedidas, e a variável response.error estiver ausente, é possível preencher o filtro para que ele responda ao fato de que o campo apareceu na resposta. Neste caso, à esquerda, escreva o mapeamento data.response.error, defina o operador "Igual" e, no valor, selecione na lista do sistema o parâmetro "Valor vazio".



Assim, se na resposta não houver campo, a solicitação não é considerada errônea. Contudo, assim que esta variável aparecer na resposta e for preenchida com algo (mesmo por uma linha vazia ““), a transação será considerada inválida.

Exemplo 2



Neste caso, vamos considerar que a resposta vem com uma variável que indica claramente que ocorreu um erro:

{"status":"error","reason":"Token expirou"}


No mapeamento da mensagem é especificado o caminho para a variável com o texto de erro {{ data.reason }} e no filtro é colocado data.status = error.

Respondeu à sua pergunta?