Skip to content

Repository files navigation

SW.HttpExtensions

Build and Publish NuGet PackageNuGet VersionLicense: MIT

A lightweight .NET library that provides useful extensions for HTTP operations, including JSON serialization/deserialization, HTTP client factory helpers, and API client abstractions.

Features

  • HttpContent Extensions: Easy JSON deserialization from HTTP responses
  • HttpClient Extensions: Simplified HTTP operations with automatic JSON serialization
  • HttpClientFactory Extensions: Streamlined client creation with authentication and base address setup
  • API Client Framework: Base classes and builders for creating structured API clients
  • JWT Token Support: Built-in JWT authentication helpers
  • Service Collection Extensions: Easy dependency injection setup

Installation

Install via NuGet Package Manager:

dotnet add package SimplyWorks.HttpExtensions

Or via Package Manager Console:

Install-Package SimplyWorks.HttpExtensions

Quick Start

HttpContent Extensions

usingSW.HttpExtensions;// Deserialize JSON response to strongly typed objectvarresponse=awaithttpClient.GetAsync("api/users");varusers=awaitresponse.Content.ReadAsAsync<List<User>>();

HttpClient Extensions

usingSW.HttpExtensions;// POST with automatic JSON serializationvaruser=newUser{Name="John",Email="john@example.com"};varresponse=awaithttpClient.PostAsync("api/users",user);// POST with automatic deserializationvarcreatedUser=awaithttpClient.PostAsync<User>("api/users",user);// GET with automatic deserializationvarusers=awaithttpClient.GetAsync<List<User>>("api/users");// PUT with automatic JSON serializationawaithttpClient.PutAsync("api/users/1",user);

HttpClientFactory Extensions

usingSW.HttpExtensions;// Create client with base address and JWT authenticationvarclient=httpClientFactory.CreateClient(newUri("https://api.example.com"),jwt:"your-jwt-token");

Service Collection Extensions

usingSW.HttpExtensions;// Add JWT token parameters from configurationservices.AddJwtTokenParameters(options =>{// Configure JWT options});// Add API client with optionsservices.AddApiClient<IUserApi,UserApiClient,UserApiMock,UserApiOptions>(options =>{options.BaseUrl="https://api.example.com";options.Mock=false;});

Dependencies

  • .NET 8.0
  • Microsoft.AspNetCore.Http.Abstractions (≥2.3.0)
  • Microsoft.Extensions.Configuration.Binder (≥8.0.2)
  • Microsoft.Extensions.Http (≥8.0.1)
  • Newtonsoft.Json (≥13.0.3)
  • SimplyWorks.PrimitiveTypes (≥8.0.0)
  • System.IdentityModel.Tokens.Jwt (≥8.3.1)

License

This project is licensed under the MIT License - see the LICENSE for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Support

If you encounter any bugs or have feature requests, please submit an issue.

About

.NET library of HTTP client extensions and API client abstractions, published as SimplyWorks.HttpExtensions

Topics

Resources

Code of conduct

Contributing

Stars

3 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages