public ApiClient(ApiClientConfiguration configuration) { _configuration = configuration; }
public OrderService(ILogger <OrderService> logger, IApiClient apiClient, ApiClientConfiguration configuration) { this.logger = logger; this.apiClient = apiClient; GoogleMapsApiKey = configuration.GoogleMapsApiKey; }
public virtual HttpRequestMessage CreateHttpRequestMessage(string url, HttpMethod method, object content = null, ApiClientConfiguration customConfig = null) { var httpRequest = new HttpRequestMessage(method, url); if (customConfig?.AdditionalHeaders != null) { foreach (var header in customConfig?.AdditionalHeaders) { httpRequest.Headers.Add(header.Key, header.Value); } } if (!string.IsNullOrEmpty(customConfig?.AcceptHeader.Value)) { httpRequest.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue(customConfig.AcceptHeader.Value)); } if (content != null) { var strContent = new StringContent(JsonConvert.SerializeObject(content)); strContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); httpRequest.Content = strContent; } return(httpRequest); }
public virtual async Task <ApiClientResult <TResponse, TResponseError> > GetResponse <TResponse, TResponseError>(string path, HttpMethod method, ApiClientConfiguration customConfig = null, object content = null) { var stopWatch = new Stopwatch(); stopWatch.Start(); var baseUrl = customConfig?.BaseUrl != null ? customConfig.BaseUrl : _config?.BaseUrl; var request = CreateHttpRequestMessage($"{baseUrl}{path}", method, content, customConfig); var response = await ProcessRequestAsync(request); stopWatch.Stop(); var result = await ProcessResponseAsync <TResponse, TResponseError>(response); result.ResponseTime = stopWatch.Elapsed; return(result); }
public virtual async Task <ApiClientResult <TResponse, TResponseError> > DeleteAsync <TResponse, TResponseError>(string path, ApiClientConfiguration customConfig = null) { return(await GetResponse <TResponse, TResponseError>(path, HttpMethod.Delete, customConfig)); }
public virtual async Task <ApiClientResult <TResponse, TResponseError> > PutAsync <TResponse, TResponseError>(string path, object content, ApiClientConfiguration customConfig = null) { return(await GetResponse <TResponse, TResponseError>(path, HttpMethod.Put, customConfig, content)); }
public void Configure(ApiClientConfiguration config) { _config = config; }