Отправка пользовательских сообщений об ошибках из WebAPI в клиентское мобильное приложение - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть приложение в формах Xamarin, использующее WebAPI в качестве бэкэнда. Я хочу, чтобы приложение выполняло определенные действия, если выполняется одно из следующих условий. Это приложение типа социальной сети с профилями пользователей и чатом и т. Д. c.

. Будет ли лучше выбрасывать некоторые пользовательские исключения из WebAPI, которые клиент может перехватить, а затем действовать? Как мне это реализовать?

например

  1. UnauthorisedUser
  2. ProfileNotComplete
  3. ProfilePictureNotComplete
  4. ProfileNotActive

Затем клиент откроет модальное диалоговое окно, в котором пользователю необходимо будет предпринять какие-то действия, прежде чем продолжать использовать остальную часть приложения.

Я использую HttpClient для отправки запросов к API и JsonConvert.DeserializeObject для ответов.

У меня уже есть (1), но я не уверен, как поступить с остальными ...

Мой текущий код выглядит примерно так:

     public async Task<T> GetAsync<T>(string uri, string authToken = "")
        {

            try
            {
                HttpClient httpClient = CreateHttpClient(authToken);

                string jsonResult = string.Empty;


                var responseMessage = await httpClient.GetAsync(uri);

                if (responseMessage.IsSuccessStatusCode)
                {
                    jsonResult = await responseMessage.Content.ReadAsStringAsync().ConfigureAwait(false);
                    var json = JsonConvert.DeserializeObject<T>(jsonResult);
                    return json;
                }


                if (responseMessage.StatusCode == HttpStatusCode.Unauthorized)
                {
                    throw new CustomUserUnauthorisedException();
                }
            }

         catch (Exception e)
            {
                Crashes.TrackError(e);
                throw e;
            }

   }

...