Closed xljiulang closed 5 months ago
[!WARNING]
Review failed
The pull request is closed.
The overall change introduces benchmarking capabilities for various HTTP operations in the WebApiClientCore.Benchmarks
project. New classes and methods facilitate the measurement of performance for different HTTP request types, including GET, POST, and PUT, as well as JSON data handling. Additionally, the project setup has been enhanced to support multiple .NET frameworks (netcoreapp3.1
and net8.0
), and the use of a user.json
file allows for realistic data benchmarks.
File/Path & Changes | |
---|---|
WebApiClientCore.Benchmarks/Others/ReadAsJsonBenchmark.cs | Introduced a new ReadAsJsonBenchmark class with methods for reading JSON data asynchronously. |
WebApiClientCore.Benchmarks/Program.cs | Replaced loop for running benchmarks with explicit calls. Updated namespace imports. |
WebApiClientCore.Benchmarks/Requests/Benchmark.cs | Added necessary namespaces and renamed Setup to GlobalSetup . Introduced UserResponseHandler for custom HTTP responses. |
WebApiClientCore.Benchmarks/Requests/HttpGetBenchmark.cs | Added benchmarking logic for GET requests using different client libraries with asynchronous methods. |
WebApiClientCore.Benchmarks/Requests/HttpPostJsonBenchmark.cs | Added benchmarking logic for POST requests with JSON payloads. Defined methods for performance measurement. |
WebApiClientCore.Benchmarks/Requests/HttpPutFormBenchmark.cs | Introduced benchmarks for PUT requests with form data using various APIs. |
WebApiClientCore.Benchmarks/Requests/IRefitApi.cs | Updated return types and parameters for GetAsync , PostJsonAsync , and PutFormAsync methods. |
WebApiClientCore.Benchmarks/Requests/IWebApiClientCoreApi.cs | Updated return types and parameters for GetAsync , PostJsonAsync , and PutFormAsync methods to use User class. |
WebApiClientCore.Benchmarks/User.cs | Introduced a User class with properties and static members for deserializing JSON data. |
WebApiClientCore.Benchmarks/WebApiClientCore.Benchmarks.csproj | Updated TargetFramework to include netcoreapp3.1 and net8.0 . Added commands to copy user.json to the output directory. |
WebApiClientCore.Benchmarks/user.json | New JSON file representing a user object for benchmarking purposes. |
WebApiClientCore/Internals/MediaTypeUtil.cs | Refactored MediaTypeMatch method for straightforward media type comparison. |
WebApiClientCore/System.Net.Http/HttpContentExtensions.cs | Refactored ReadAsJsonAsync and ReadAsByteArrayAsync methods to handle JSON serialization and encoding efficiently. |
Amidst the benchmark's data flow,
Where GETs and POSTs in speed do show,
A rabbit hops 'midst code so sleek,
With JSON streams so quick to peek.
🎩 In .NET's realm, the numbers gleam,
Each byte and call a coder's dream.
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
Summary by CodeRabbit
New Features
User
class for benchmarking purposes.user.json
file representing a sample user.Improvements
netcoreapp3.1
andnet8.0
.Refactor