Rystem.RepositoryFramework.Api.Client 6.0.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package Rystem.RepositoryFramework.Api.Client --version 6.0.2
                    
NuGet\Install-Package Rystem.RepositoryFramework.Api.Client -Version 6.0.2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Rystem.RepositoryFramework.Api.Client" Version="6.0.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Rystem.RepositoryFramework.Api.Client" Version="6.0.2" />
                    
Directory.Packages.props
<PackageReference Include="Rystem.RepositoryFramework.Api.Client" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Rystem.RepositoryFramework.Api.Client --version 6.0.2
                    
#r "nuget: Rystem.RepositoryFramework.Api.Client, 6.0.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Rystem.RepositoryFramework.Api.Client@6.0.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Rystem.RepositoryFramework.Api.Client&version=6.0.2
                    
Install as a Cake Addin
#tool nuget:?package=Rystem.RepositoryFramework.Api.Client&version=6.0.2
                    
Install as a Cake Tool

What is Rystem?

Services extensions

HttpClient to use your API (example)

You can add a client for a specific url

builder.Services.AddRepository<User, string>(builder =>
{
    builder
        .WithApiClient()
        .WithHttpClient("localhost:7058");
});

You may add a Polly policy to your api client for example:

var retryPolicy = HttpPolicyExtensions
  .HandleTransientHttpError()
  .Or<TimeoutRejectedException>()
  .RetryAsync(3);

builder.Services.AddRepository<User, string>(builder =>
{
    builder
        .WithApiClient()
        .WithHttpClient("localhost:7058")
            .ClientBuilder
        .AddPolicyHandler(retryPolicy);
});

and use it in DI with

IRepository<User, string> repository

Query and Command

In DI you install the services

services.AddCommand<User, string>(builder => {
    builder
        .WithApiClient()
        .WithHttpClient("localhost:7058");
});
services.AddQuery<User, string>(builder => {
    builder
        .WithApiClient()
        .WithHttpClient("localhost:7058");
});

And you may inject the objects

Please, use ICommand, IQuery and not ICommandPattern, IQueryPattern

ICommand<User, string> command
IQuery<User, string> command

With a non default key

In DI you install the services with a bool key for example.

services.AddRepository<User, bool>(builder => {
    builder
        .WithApiClient()
        .WithHttpClient("localhost:7058");
});
services.AddCommand<User, bool>(builder => {
    builder
        .WithApiClient()
        .WithHttpClient("localhost:7058");
});
services.AddQuery<User, bool>(builder => {
    builder
        .WithApiClient()
        .WithHttpClient("localhost:7058");
});

And you may inject the objects

Please, use ICommand, IQuery, IRepository and not ICommandPattern, IQueryPattern, IRepositoryPattern

IRepository<User, string> repository
ICommand<User, string> command
IQuery<User, string> command

Interceptors

You may add a custom interceptor for every request for every model

public static IServiceCollection AddApiClientInterceptor<TInterceptor>(this IServiceCollection services,
    ServiceLifetime serviceLifetime = ServiceLifetime.Scoped)
    where TInterceptor : class, IRepositoryClientInterceptor

or a specific interceptor for each model

public static IServiceCollection AddApiClientInterceptor<TInterceptor>(this IServiceCollection services,
    ServiceLifetime serviceLifetime = ServiceLifetime.Scoped)
    where TInterceptor : class, IRepositoryClientInterceptor

or for a string as default TKey

 public static RepositorySettings<T, TKey> AddApiClientSpecificInterceptor<T, TKey, TInterceptor>(
    this RepositorySettings<T, TKey> settings,
    ServiceLifetime serviceLifetime = ServiceLifetime.Scoped)
    where TInterceptor : class, IRepositoryClientInterceptor<T>
    where TKey : notnull   

Maybe you can use it to add a token as JWT o another pre-request things.

Default interceptor for Authentication with JWT

You may use the default interceptor to deal with the identity manager in .Net DI.

builder.Services.AddDefaultAuthorizationInterceptorForApiHttpClient();

with package

RepositoryFramework.Api.Client.Authentication.BlazorServer

or if you need to use in Wasm blazor use with

Rystem.RepositoryFramework.Api.Client.Authentication.BlazorWasm
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Rystem.RepositoryFramework.Api.Client:

Package Downloads
Rystem.RepositoryFramework.Api.Client.Authentication.BlazorServer

Rystem.RepositoryFramework allows you to use correctly concepts like repository pattern, CQRS and DDD. You have interfaces for your domains, auto-generated api, auto-generated HttpClient to simplify connection "api to front-end", a functionality for auto-population in memory of your models, a functionality to simulate exceptions and waiting time from external sources to improve your implementation/business test and load test.

Rystem.RepositoryFramework.Api.Client.Authentication.BlazorWasm

Rystem.RepositoryFramework allows you to use correctly concepts like repository pattern, CQRS and DDD. You have interfaces for your domains, auto-generated api, auto-generated HttpClient to simplify connection "api to front-end", a functionality for auto-population in memory of your models, a functionality to simulate exceptions and waiting time from external sources to improve your implementation/business test and load test.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
10.0.1 299 11/12/2025
9.1.3 324 9/2/2025
9.1.2 764,567 5/29/2025
9.1.1 97,848 5/2/2025
9.0.32 186,644 4/15/2025
9.0.31 5,870 4/2/2025
9.0.30 88,848 3/26/2025
9.0.29 9,057 3/18/2025
9.0.28 241 3/17/2025
9.0.27 232 3/16/2025
9.0.26 273 3/13/2025
9.0.25 52,132 3/9/2025
9.0.21 387 3/6/2025
9.0.20 19,614 3/6/2025
9.0.19 315 3/6/2025
9.0.18 333 3/4/2025
9.0.17 201 3/1/2025
9.0.16 216 3/1/2025
9.0.15 75,582 2/22/2025
9.0.14 22,593 2/18/2025
9.0.13 233 2/9/2025
9.0.12 217,705 1/13/2025
9.0.11 24,074 1/9/2025
9.0.10 200 1/9/2025
9.0.9 4,061 1/7/2025
9.0.8 12,568 1/6/2025
9.0.7 194 1/6/2025
9.0.4 92,354 12/23/2024
9.0.3 221 12/22/2024
9.0.2 10,740 12/21/2024
9.0.1 1,254 12/21/2024
9.0.0 173,108 11/16/2024
9.0.0-rc.1 137 10/18/2024
6.2.0 219,131 10/9/2024
6.1.1 247 10/9/2024
6.1.0 48,031 9/29/2024
6.0.24 258 9/11/2024
6.0.23 340,226 7/18/2024
6.0.21 261 6/18/2024
6.0.20 727,874 6/16/2024
6.0.19 30,517 6/14/2024
6.0.18 259 6/14/2024
6.0.17 234 6/14/2024
6.0.16 50,102 6/10/2024
6.0.15 230 6/9/2024
6.0.14 94,383 5/24/2024
6.0.13 248 5/23/2024
6.0.12 247 5/23/2024
6.0.11 267 5/20/2024
6.0.9 270 5/20/2024
6.0.7 258 5/18/2024
6.0.6 213 5/10/2024
6.0.5 239 5/10/2024
6.0.4 549,906 4/3/2024
6.0.3 294 3/25/2024
6.0.2 393,587 3/11/2024
6.0.0 1,170,151 11/21/2023
6.0.0-rc.6 187 10/25/2023
6.0.0-rc.5 122 10/25/2023
6.0.0-rc.4 135 10/23/2023
6.0.0-rc.3 141 10/19/2023
6.0.0-rc.2 121 10/18/2023
6.0.0-rc.1 113 10/16/2023
5.0.20 638,814 9/25/2023
5.0.19 440 9/10/2023
5.0.18 410 9/6/2023
5.0.17 371 9/6/2023
5.0.16 365 9/5/2023
5.0.15 365 9/5/2023
5.0.14 372 9/5/2023
5.0.13 383 9/1/2023
5.0.12 362 8/31/2023
5.0.11 340 8/30/2023
5.0.10 352 8/29/2023
5.0.9 405 8/24/2023
5.0.8 399 8/24/2023
5.0.7 449,846 8/23/2023
5.0.6 17,655 8/21/2023
5.0.5 4,445 8/21/2023
5.0.4 306 8/16/2023
5.0.3 212,599 8/2/2023
5.0.2 1,863 8/2/2023
5.0.1 11,671 8/1/2023
5.0.0 11,982 7/31/2023
4.1.26 140,812 7/20/2023
4.1.25 24,767 7/16/2023
4.1.24 397,973 6/13/2023
4.1.23 45,844 6/13/2023
4.1.22 129,246 5/30/2023
4.1.21 55,566 5/20/2023
4.1.20 404,717 4/19/2023
4.1.19 95,442 3/20/2023
4.1.18 432 3/20/2023
4.1.17 426 3/16/2023
4.1.16 389 3/16/2023
4.1.15 431 3/15/2023
4.1.14 1,010 3/9/2023
4.1.13 415 3/7/2023
4.1.12 551 2/10/2023
4.1.11 499 1/26/2023
4.1.10 539 1/22/2023
4.1.9 454 1/20/2023
4.1.8 493 1/18/2023
4.1.7 604 1/18/2023
4.1.6 475 1/17/2023
4.1.1 508 1/4/2023
4.1.0 487 1/1/2023
3.1.5 490 12/21/2022
3.1.3 544 12/12/2022
3.1.2 454 12/7/2022
3.1.1 472 12/7/2022
3.1.0 560 12/2/2022
3.0.29 516 12/1/2022
3.0.28 501 12/1/2022
3.0.27 699 11/23/2022
3.0.25 494 11/23/2022
3.0.24 558 11/18/2022
3.0.23 532 11/18/2022
3.0.22 535 11/15/2022
3.0.21 553 11/14/2022
3.0.20 567 11/13/2022
3.0.19 744 11/2/2022
3.0.18 566 11/2/2022
3.0.17 580 10/29/2022
3.0.16 584 10/29/2022
3.0.15 598 10/29/2022
3.0.14 633 10/24/2022
3.0.13 631 10/24/2022
3.0.12 684 10/17/2022
3.0.11 616 10/10/2022
3.0.10 655 10/6/2022
3.0.9 595 10/6/2022
3.0.8 582 10/6/2022
3.0.7 610 10/6/2022
3.0.6 605 10/5/2022
3.0.5 574 10/5/2022
3.0.4 601 10/5/2022
3.0.3 675 10/3/2022
3.0.2 622 9/30/2022
3.0.1 623 9/29/2022
2.0.17 649 9/29/2022
2.0.16 610 9/27/2022
2.0.15 678 9/27/2022
2.0.14 711 9/26/2022
2.0.13 677 9/26/2022
2.0.12 673 9/26/2022
2.0.11 635 9/25/2022
2.0.10 696 9/25/2022
2.0.9 677 9/22/2022
2.0.8 634 9/22/2022
2.0.6 657 9/20/2022
2.0.5 676 9/20/2022
2.0.4 632 9/20/2022
2.0.2 634 9/20/2022
2.0.1 665 9/13/2022
2.0.0 651 8/19/2022
1.1.24 692 7/30/2022
1.1.23 642 7/29/2022
1.1.22 668 7/29/2022
1.1.21 912 7/29/2022
1.1.20 691 7/29/2022
1.1.19 706 7/27/2022
1.1.17 675 7/27/2022
1.1.16 698 7/26/2022
1.1.15 666 7/25/2022
1.1.14 684 7/25/2022
1.1.13 698 7/22/2022
1.1.12 659 7/19/2022
1.1.11 666 7/19/2022
1.1.10 659 7/19/2022
1.1.9 682 7/19/2022
1.1.8 713 7/18/2022
1.1.7 716 7/18/2022
1.1.6 679 7/18/2022
1.1.5 640 7/17/2022
1.1.4 676 7/17/2022
1.1.3 713 7/17/2022
1.1.2 703 7/17/2022
1.1.0 693 7/17/2022
1.0.2 651 7/15/2022
1.0.1 659 7/15/2022
1.0.0 711 7/8/2022
0.10.7 663 7/7/2022
0.10.2 693 7/2/2022
0.10.1 680 7/1/2022
0.10.0 679 7/1/2022
0.9.12 724 6/29/2022
0.9.11 716 6/21/2022
0.9.10 682 6/20/2022
0.9.9 665 6/11/2022
0.9.7 692 6/9/2022
0.9.6 645 6/5/2022
0.9.5 644 6/3/2022
0.9.3 630 6/3/2022
0.9.2 681 5/31/2022
0.9.1 655 5/31/2022
0.9.0 659 5/31/2022