Skip to content

Latest commit

History

223 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Portable Web Client

Cross platform web client framework for calling ASP.NET Core RESTful Web Apis and gRPC services

Functionality

The libary provides low level, bootstrapped base classes to simplify the building of client libraries for use with ASP.NET Core Web Apis and now gRPC services too.

  • Base web service client classes for RESTful Web APIs and gRPC service clients
    • Core Web Client functionality
    • Stores Url
    • Can check for connectivity
    • Stores Default Timeout
    • Supports gRPC fpr Web
  • Base service client classes for both RESTFul and Grpc services
    • Handles RestClient and Grpc channel management functionality
    • Helper methods for Get and Post method calls
    • Simplifies calls to the services
  • Base request and response classes
  • Generic methods and extensions for calling RESTful Web APIs
  • Secure request and response classes using a SecurePayload
  • Integrated encryption, with abiltiy provide override with custom implementations.
    • Uses 256-bit AES encryption by default

V3.x and abovew breaking changes

With the move to v3 some of the classes have been renamed and moved into different packages, such as ServiceClientBase which now exists in DSoft.Portable.WebClient.Rest and is now named RestServiceClientBase.

Encryption changes

v3.0 only!
You know have to set an InitVector key of your own on EncryptionProviderFactory before encrption and decryption will function.

v3.1 and Above
In v3.1 and above the InitVector key is passed explicilty to the IEncryptionProvider implementation when returned by EncryptionProviderFactory.Build. This allows for calls to multiple services using multiple IVs. Check out the test harness for an example.

v5.0 and Above
IWebClient has been removed and now constructors for GrpcServiceClientBase and RestServiceClientBase receive GrpcClientOptions and RestApiClientOptions to provide configuration data.

Build status

Build Status

Packages

Platform/FeaturePackage nameStableBeta
CoreDSoft.Portable.WebClient.CoreNuGetNuGet
EncryptionDSoft.Portable.WebClient.EncryptionNuGetNuGet
GrpcDSoft.Portable.WebClient.GrpcNuGetNuGet
Grpc EncryptionDSoft.Portable.WebClient.Grpc.EncryptionNuGetNuGet
Grpc Encryption Build ToolsDSoft.Portable.WebClient.Grpc.Encryption.ToolsNuGetNuGet
RestDSoft.Portable.WebClient.RestNuGetNuGet
Rest EncryptionDSoft.Portable.WebClient.Rest.EncryptionNuGetNuGet
Rest ExtensionsDSoft.Portable.WebClient.Rest.ExtensionsNuGetNuGet
EF Core Security EntitiesDSoft.Portable.Server.Security.CoreNuGetNuGet
EF Core Secure Database contextsDSoft.Portable.EntityFrameworkCore.SecurityNuGetNuGet

Version History (from 4.0)

  • Version 5.1.0
    • Moved version number from RestApiClientOptions to abtract property of RestServiceClientBase
    • Added IDisposable to RestServiceClientBase
  • Version 5.0.0
    • Cleanup of API
    • Removal of IWebClient
  • Version 4.1.0
    • Updtated to the latest packages
  • Version 4.0.0
    • Added support for .NET 8.0
    • Removed EF Core libraries
    • Updated to last RestSharp
    • Improved support for Dependency Injecting GrpcClientOptions
    • Added custom HttpHandler to GrpcClientOptions
    • Cleaned up GrpcChannelManager code and add support for the custom HttpHandler in GrpcClientOptions
      • This works great for Testing you Grpc Services with WebApplicationFactory
    • Updated AesEncryptionProvider to use Aes.Create
    • Added Unit Test sample

About

Cross platform web client framework for calling ASP.NET Core RESTful Web Apis and Grpc services

Topics

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages