diff --git a/GiantBomb.Api/Core.cs b/GiantBomb.Api/Core.cs index 4acfbb8..a1e2f03 100644 --- a/GiantBomb.Api/Core.cs +++ b/GiantBomb.Api/Core.cs @@ -9,7 +9,7 @@ using GiantBomb.Api.Model; using GiantBomb.Api.Serialization; using RestSharp; -using RestSharp.Serializers.SystemTextJson; +using RestSharp.Serializers.Json; namespace GiantBomb.Api { @@ -40,25 +40,26 @@ public GiantBombRestClient(string apiToken, Uri baseUrl) var version = typeof(GiantBombRestClient).GetTypeInfo().Assembly.GetName().Version; - _client = new RestClient + var clientOptions = new RestClientOptions(baseUrl) { - UserAgent = "giantbomb-csharp/" + version, - BaseUrl = baseUrl + UserAgent = "giantbomb-csharp/" + version }; + + _client = new RestClient(clientOptions); // API token is used on every request _client.AddDefaultParameter("api_key", ApiKey); _client.AddDefaultParameter("format", "json"); - var options = new System.Text.Json.JsonSerializerOptions() + var jsonOptions = new System.Text.Json.JsonSerializerOptions() { PropertyNamingPolicy = SnakeCaseNamingPolicy.SnakeCase, DictionaryKeyPolicy = SnakeCaseNamingPolicy.SnakeCase, NumberHandling = JsonNumberHandling.AllowReadingFromString, }; - options.Converters.Add(new DateTimeConverter()); - options.Converters.Add(new BoolConverter()); - _client.UseSystemTextJson(options); + jsonOptions.Converters.Add(new DateTimeConverter()); + jsonOptions.Converters.Add(new BoolConverter()); + _client.UseSerializer(() => new SystemTextJsonSerializer(jsonOptions)); } public GiantBombRestClient(string apiToken) @@ -84,7 +85,7 @@ public virtual T Execute(RestRequest request) where T : new() /// The RestRequest to execute (will use client credentials) public virtual async Task ExecuteAsync(RestRequest request) where T : new() { - IRestResponse response = null; + RestResponse response = null; try { @@ -97,7 +98,7 @@ public virtual async Task ExecuteAsync(RestRequest request) where T : new( } // Deserialize original requested type - IRestResponse deserializedResponse = null; + RestResponse deserializedResponse = null; Exception deserializeEx = null; try { @@ -154,7 +155,7 @@ public virtual async Task ExecuteAsync(RestRequest request) where T : new( /// Execute a manual REST request /// /// The RestRequest to execute (will use client credentials) - public virtual IRestResponse Execute(RestRequest request) + public virtual RestResponse Execute(RestRequest request) { return ExecuteAsync(request).Result; } @@ -163,7 +164,7 @@ public virtual IRestResponse Execute(RestRequest request) /// Execute a manual REST request (async) /// /// The RestRequest to execute (will use client credentials) - public virtual async Task ExecuteAsync(RestRequest request) + public virtual async Task ExecuteAsync(RestRequest request) { return await _client.ExecuteAsync(request).ConfigureAwait(false); } diff --git a/GiantBomb.Api/GiantBomb.Api.csproj b/GiantBomb.Api/GiantBomb.Api.csproj index 6ae3135..c971758 100644 --- a/GiantBomb.Api/GiantBomb.Api.csproj +++ b/GiantBomb.Api/GiantBomb.Api.csproj @@ -5,7 +5,7 @@ GiantBomb.Api GiantBomb.Api True - 2.6.0 + 3.0.0 kayub kayub GiantBomb API (C#) @@ -25,8 +25,7 @@ - - + diff --git a/GiantBomb.Api/IGiantBombRestClient.cs b/GiantBomb.Api/IGiantBombRestClient.cs index e72b8de..a67261b 100644 --- a/GiantBomb.Api/IGiantBombRestClient.cs +++ b/GiantBomb.Api/IGiantBombRestClient.cs @@ -280,12 +280,12 @@ public interface IGiantBombRestClient /// Execute a manual REST request /// /// The RestRequest to execute (will use client credentials) - IRestResponse Execute(RestRequest request); + RestResponse Execute(RestRequest request); /// /// Execute a manual REST request /// /// The RestRequest to execute (will use client credentials) - Task ExecuteAsync(RestRequest request); + Task ExecuteAsync(RestRequest request); } } \ No newline at end of file