Skip to content

Commit 88b33d5

Browse files
committed
moved apikey to GenderApiConfiguration
1 parent 920bc90 commit 88b33d5

File tree

3 files changed

+15
-4
lines changed

3 files changed

+15
-4
lines changed

src/ConfigurationExtension.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using System;
2-
using System.Net.Http.Headers;
32
using Microsoft.Extensions.DependencyInjection;
43

54
namespace MicroKnights.Gender_API
@@ -14,9 +13,12 @@ public static IServiceCollection UseGenderAPI(this IServiceCollection services,
1413
services.AddHttpClient(ServiceName, c =>
1514
{
1615
c.BaseAddress = new Uri("https://gender-api.com");
17-
c.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
1816
});
1917

18+
services.AddSingleton(new GenderApiConfiguration
19+
{
20+
ApiKey = apiKey
21+
});
2022
services.AddSingleton<GenderApiClient>();
2123

2224
return services;

src/GenderApiClient.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,12 @@ namespace MicroKnights.Gender_API
1212
public class GenderApiClient
1313
{
1414
private readonly IHttpClientFactory _httpClientFactory;
15+
private readonly GenderApiConfiguration _configuration;
1516

16-
public GenderApiClient(IHttpClientFactory httpClientFactory)
17+
public GenderApiClient(IHttpClientFactory httpClientFactory, GenderApiConfiguration configuration)
1718
{
1819
_httpClientFactory = httpClientFactory;
20+
_configuration = configuration;
1921
}
2022

2123
protected virtual async Task<TResponse> ExecuteRequest<TResponse>(string method, IDictionary<string,object> parameters) where TResponse : GenderApiResponse
@@ -24,7 +26,7 @@ protected virtual async Task<TResponse> ExecuteRequest<TResponse>(string method,
2426
{
2527
using (var client = _httpClientFactory.CreateClient(ConfigurationExtension.ServiceName))
2628
{
27-
parameters.Add("key", client.DefaultRequestHeaders.Authorization.Parameter);
29+
parameters.Add("key", _configuration.ApiKey);
2830
var urlParams = string.Join("&", parameters.Select(p => $"{p.Key}={p.Value.ToString()}"));
2931
var jsonResult = await client.GetStringAsync($"{method}?{urlParams}");
3032
if (jsonResult.IndexOf("errno", StringComparison.InvariantCultureIgnoreCase) > 0)

src/GenderApiConfiguration.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
namespace MicroKnights.Gender_API
2+
{
3+
public class GenderApiConfiguration
4+
{
5+
public string ApiKey { get; set; }
6+
}
7+
}

0 commit comments

Comments
 (0)