RestSharp: где можно разместить общий код, который выполняется при каждом запросе? - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть клиент RestSharp API, в котором много повторяющегося кода для установки некоторых заголовков и обработки исключений. Я хочу централизовать это в единую функцию где-то, но я не могу понять, как из документов. Пример Recommended Usage выглядит действительно многообещающе, но метод Execute, похоже, не вызывается автоматически. Если я использую рекомендуемый синтаксис client.Get<User>() (где я выбираю пользователя), он, похоже, не использует / не вызывает метод Execute.

Вот пример моих вызовов API:

    public User GetUserByUserId(Guid userID)
    {
        var request = new RestRequest("api/Users");
        request.AddHeader("accept", "application/vnd.cardivation.com.v2+json");

        request.Parameters.Add(new Parameter("userID", userID, ParameterType.QueryString));

        var response = client.Get<User>(request);

        if (response.ResponseStatus == ResponseStatus.Error)
        {
            throw new ApplicationException("Could not fetch user from API", response.ErrorException);
        }

        return response.Data;
    }

Вызов AddHeader и проверка статуса ответа - это биты, которые я хочу централизовать.

...