Apizr Versions Save

Refit based web api client management, but resilient (retry, connectivity, cache, auth, log, priority, etc...)

Apizr-v6.0.0-preview.3

1 week ago

Apizr

  • [Breaking][DelegatingHandler] Now we can register DelegatingHandlers thanks to WithDelegatingHandler fluent option instead of the AddDelegatingHandler deleted one for consistency.
  • [New][DelegatingHandler] Now we can adjust the duplicate strategy while registering a DelegatingHandler
  • [New][HttpMessageHandler] Now we can register an HttpMessageHandler thanks to WithHttpMessageHandler fluent option
  • [Fix][Cache] Parameter based cache keys are now allways computed to integrate value changes (skiping cachekey methodset) #20

Apizr.Extensions.Microsoft.DependencyInjection

  • [Breaking][DelegatingHandler] Now we can register DelegatingHandlers thanks to WithDelegatingHandler fluent option instead of the AddDelegatingHandler deleted one for consistency.
  • [New][DelegatingHandler] Now we can adjust the duplicate strategy while registering a DelegatingHandler
  • [New][HttpMessageHandler] Now we can register an HttpMessageHandler thanks to WithHttpMessageHandler fluent option

Apizr.Extensions.Microsoft.Caching

  • [New] WithDistributedCacheHandler & WithInMemoryCacheHandler fluent shortcut options are now both available for single api registration too (no more limited to Registry)
  • [Fix] Cache handlers now relies on content serializer to get xml serialization work too
  • [Fix] Distributed cache handler serialization is now null protected to get it work without throwing exceptions #19

Apizr-v6.0.0-preview.2

1 month ago
  • [New][HttpTracer] Now we can filter out unwanted http message parts with the brand new IgnoreMessageParts fluent option
  • [New][HttpTracer] Now we can pick RequestAllButBody, HeadersOnly or AllButBody http message parts when configuring logging options fluently or using attribute
  • [New][HttpTracer/Headers] Now we can redact any header sensitive values from logs thanks to WithLoggedHeadersRedactionNames or WithLoggedHeadersRedactionRule fluent options
  • [New][Headers] Now we can choose to refresh a header value at request time or not, depending on the brand new WithHeaders's ApizrLifetimeScope optional parameter
  • [New][Headers] Now we can choose to set headers values right the way to the request or store it for further key-only header attribute match use, depending on the brand new WithHeaders's ApizrRegistrationMode optional parameter
  • [New][Headers] Now we can set headers values thanks to an expression tree
  • [Breaking][Headers] Now WithHeaders options take an enumerable parameter instead of a parameter array so that we could provide some more optional parameters

Apizr-v6.0.0-preview.1

2 months ago

All

  • [New][Target] Now targeting multiple frameworks based on Refit targets: netstandard2.0;netstandard2.1;net462;net6.0;net7.0;net8.0
  • [New][Exceptions] Now we can handle IApizrResponse safe response (based on Refit's IApiResponse) instead of catching exceptions
  • [New][Attributes] Now we can provide types to attributes thanks to generic arguments instead of using typeof() as constructor parameters
  • [New/Breaking][Polly] Now supporting only the brand new Polly v8+ Resilience Strategies/Pipelines/Registry instead of former Polly v7- Policies
  • [Breaking][Removed] Previsoulsy deprecated extensions methods for backward compatibility have been removed as they were not suitable anymore

Apizr.Integrations.MediatR

  • [New][Exceptions] Now we can send safe request returning an IApizrResponse response to handle (based on Refit's IApiResponse) instead of catching exceptions

Apizr.Tools.NSwag

  • [Update][Polly] Templates have been updated to use the new Polly v8+ Resilience Strategies/Pipelines/Registry instead of former Polly v7- Policies

Apizr-v5.4.0

7 months ago

All

  • [Unified][Cancellation] Now cancelling a request on Android trows an OperationCanceledException instead of a WebException/SocketClosedException
  • [Unified][Cancellation] Now cancelling a request on iOS trows an OperationCanceledException instead of a TimeoutException/TaskCanceledException
  • [New][Timeout] Now we can set a request timeout (each request try) and/or an operation timeout (overall request tries) thanks to both dedicated attributes or fluent options
  • [Unified][Timeout] Now a request that times out on client side throws a TimeoutRejectedException provided by Polly instead of a TimeoutException
  • [Fix][Headers] Now the headers feature fully support composite configuration
  • [Fix][Context] Now the context feature fully support composite configuration

Apizr-v5.3.0

7 months ago

All

  • [New][Timeout] Now we can set a request timeout thanks to both dedicated attributes or fluent option
  • [New][Headers] Now we can set global headers without passing any options request parameter (HttpClient's DefaultRequestHeaders)
  • [New][Auth] Now we can access to a dedicated logger instance while inheriting from AuthenticationHadlerBase
  • [Fix][Cancellation] Now we really can cancel a request by providing a token trough the options
  • [Fix][Log] CRUD's log attributes now target Class only

Apizr

  • [Breaking][HttpClient] Now we can configure the HttpClient instead of providing one (same as extended experience) with the brand new ConfigureHttpClient fluent option

Apizr.Extensions.Microsoft.DependencyInjection

  • [Fix][HttpClient] Now HttpClientBuilder really apply composite configurations

Apizr.Integrations.FileTransfer.MediatR

  • [Fix] Now default upload command returns HttpResponseMessage

Apizr.Integrations.FileTransfer.Optional

  • [Fix] Now default upload optional command returns Option<HttpResponseMessage, ApizrException>

Apizr-v5.2.0

8 months ago

Apizr.Integrations.FileTransfer

  • [New] Now Upload api uses the "file" alias
  • [New] Now we can create transfer managers with shortcuts

Apizr.Extensions.Microsoft.FileTransfer

  • [New] Now we can get transfer managers with shortcuts

Apizr.Integrations.FileTransfer.MediatR

  • [New] Now we can send requests with shortcuts

Apizr.Integrations.FileTransfer.Optional

  • [New] Now we can send optional requests with shortcuts

Apizr-v5.1.0

9 months ago

All

  • [Bump] NuGet reference packages updated

Apizr

  • [New][Polly] Now providing a PolicyRegistry is not mandatory anymore so that Polly could be turned off by default

Apizr-v5.0.1

9 months ago

5.0.1

All

  • [Fix] No more NullRefEx when getting cookies from CookieContainer
  • [Fix] Typo fix

Apizr-v5.0.0

10 months ago

5.0

Breaking changes

All

  • [New] Now we can group registry common configurations at any level to share configurations without any limit
  • [New] Now we can set a base path with the brand new WithBasePath fluent option or using attribute
  • [New] Now we can set options at request time with the brand new fluent request options builder
  • [New] Now we can execute api requests directly from the registry containing the managed api
  • [New] Now we can set headers with the brand new WithHeaders fluent option
  • [New] Now we can set a default readonly authentication token with a dedicated WithAuthenticationHandler fluent option

Apizr

  • [New] [Core] Now we can set a custom HttpClient with the brand new WithHttpClient fluent option
  • [Improvement] [Core] No more dependency to Microsoft.Extensions.Http.Polly from the core package
  • [Breaking] [Naming] Now ApizrBuilder static class offers only a Current property returning its own instance to get acces to its methods, so that it could be extended then by other packages
  • [Fix] Some bugs and performance issues fixed

Apizr.Integrations.Mapster

  • [New] Brand new integration with Mapster

Apizr.Integrations.FileTransfer

  • [New] Brand new integration package to manage file transfers like a breeze with static registration/instanciation
  • [New] We can track file transfer progress with the brand new WithProgress fluent option

Apizr.Extensions.Microsoft.FileTransfer

  • [New] Brand new integration package to manage file transfers like a breeze with extended registration

Apizr.Integrations.FileTransfer.MediatR

  • [New] Brand new integration package to manage file transfers like a breeze with mediator pattern

Apizr.Integrations.FileTransfer.Optional

  • [New] Brand new integration package to manage file transfers like a breeze with mediator pattern and optional result

Apizr.Tools.NSwag

  • [New] Brand new CLI tool so that Apizr files can now be generated by command line (Models, Apis and Registrations) from an OpenApi/Swagger definition using NSwag

Apizr-v5.0.0-preview.4

10 months ago

All

  • [New] Now we can set a default readonly authentication token with a dedicated WithAuthenticationHandler fluent option

Apizr.Integrations.MediatR

  • [Fix] Fixed wrong package reference from last preview 3