Есть ли способ заставить Refit конвертировать в другую модель на основе кода возврата Http? - PullRequest
0 голосов
/ 23 июня 2019

Мне нужна помощь с Refit ... Я создаю приложение Xamarin.Android и использую Refit для выполнения сетевых вызовов на некоторых конечных точках. Основываясь на нормальном функционале Refit, мы можем заставить его преобразовать ответ в модель или список нужных нам моделей:

[Get("/Racas.aspx")]
Task<List<Raca>> GetRacas([AliasAs("token")] string token);

Это работает как задумано, но, поскольку API возвращает другую модель, отличную от "Raca", при возникновении ошибок, как я могу преобразовать ее должным образом?

Это базовый пример, только Get на конечной точке, который вернет мне список ресурсов с HTTP 200, ИЛИ, если что-то пойдет не так, сервер вернет мне модель под названием «Mensagem», а не « Рака "с HTTP 5xx или 4xx ...

Как я могу продолжить это? GetRacas () должен быть в состоянии конвертировать в HTTP-код:

Task<List<Raca>> GetRacas()
and
Task<Mensagem> GetRacas()

Я называю Задачи ремонта следующим образом:

            await GetApiService().GetRacas(currentUser.Token).ContinueWith(data =>
            {   
                if (data.IsCompleted && data.Status == TaskStatus.RanToCompletion)
                {
                    ...
                }
...
            });

Я ценю любую помощь! Спасибо

...