Skip to content

Releases: Respawnsive/Apizr

Apizr-v6.1.0

01 Oct 14:56
Compare
Choose a tag to compare

All

  • [New][Cache] Now we can let the server control the client cache mode and lifetime thanks to the brand new SetByHeader cache mode (see Cache-Control, Expires, ETag and Last-Modified headers)
  • [New][Transfer] Now we can finally use the ITransferApi<TDownloadParams> shortcut api thanks to latest Refit updates
  • [Update][NuGet] Now all package references are up to date with the latest versions

Apizr-v6.0.0

10 Sep 19:30
Compare
Choose a tag to compare

All

  • [New][Exceptions] Now we can handle IApizrResponse safe response (based on Refit's IApiResponse) instead of catching exceptions
  • [New][Configuration] Now we can configure Apizr thanks to IConfiguration from Microsoft.Extensions (e.g. from appsetings.json)
  • [New][Configuration] Now we can configure request options fluently at register time thanks to the brand new WithRequestOptions fluent option
  • [New][Refitter] Now we can generate all the boilerplate thanks to Refitter v1.2+ external package instead of the deprecated Apizr.Tools.NSwag one
  • [New/Breaking][Polly] Now supporting only the brand new Polly v8+ Resilience Strategies/Pipelines/Registry instead of former Polly v7- Policies
  • [New][Polly] Now we can set resilience pipelines to apply fluently to the request thanks to the brand new WithResiliencePipelineKeys fluent option
  • [New][Polly] Now we can scope resilience pipelines executions to specific http method groups thanks to the brand new WithResiliencePipelineKeys's ApizrRequestMethod[] optional parameter
  • [New][Polly] Now we can scope resilience pipelines executions to specific http method groups thanks to all brand new scoped {RequestMethod}ResiliencePipeline attributes like GetResiliencePipeline
  • [New][Cache] Now we can set caching options to apply fluently to the request thanks to the brand new WithCaching fluent option
  • [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, AllButRequestBody, AllButResponseBody or AllButBodies http message parts when configuring logging options fluently or using attribute
  • [New][HttpTracer/Headers] Now we can redact any header sensitive values from logs at design time by surrounding header values with a * star symbol rigth into the Headers attribute
  • [New][HttpTracer/Headers] Now we can redact any header sensitive values from logs at register time 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 straight to the request or store it for further headers attribute key 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
  • [New][Attributes] Now we can provide types to attributes thanks to generic arguments instead of using typeof() as constructor parameters
  • [New][DelegatingHandler] Now we can adjust the duplicate strategy while registering a DelegatingHandler
  • [New][DelegatingHandler] Now we can register the extended way a DelegatingHandler by its type
  • [New][HttpMessageHandler] Now we can register an HttpMessageHandler thanks to WithHttpMessageHandler fluent option
  • [New][HttpMessageHandler] Now we can register the extended way a HttpMessageHandler by its type
  • [New][Cache] Now CacheKey attribute allows composite cache key generation from multiple decorated parameters
  • [New][Registry] Now we can add multiple registry to the container and resolve a single merged one
  • [New][BaseAddress/Path] Now we can set a base address or path with a duplicate strategy
  • [New][Target] Now targeting multiple frameworks based on Refit targets: netstandard2.0;netstandard2.1;net462;net6.0;net7.0;net8.0
  • [New/Breaking][BaseAddress] Now we can set base address with the brand new BaseAddress attribure instead of the now removed WebApi, CrudEntity or MappedCrudEntity useless ones, and only if you need to set it at design time
  • [New/Breaking][AutoRegister] Now we can tell Apizr to auto register apis with the brand new AutoRegister attribure instead of the now removed WebApi, CrudEntity or MappedCrudEntity useless ones
  • [New/Breaking][MappedWith] Now we can tell Apizr to map data while using MediatR/Optional thanks to the yet known MappedWith attribure instead of the now removed CrudEntity or MappedCrudEntity useless ones
  • [Breaking][CacheMode] Now CacheMode.GetAndFetch enum option has been renamed to CacheMode.FetchOrGet so that it says what it actually does and improve consistency with the other CacheMode.GetOrFetch option
  • [Breaking][Headers] Now WithHeaders options take an enumerable parameter instead of a parameter array so that we could provide some more optional parameters
  • [Breaking][Removed] Previsoulsy deprecated extensions methods for backward compatibility have been removed as they were not suitable anymore
  • [Breaking][DelegatingHandler] Now we can register DelegatingHandlers thanks to WithDelegatingHandler fluent option instead of the AddDelegatingHandler deleted one for consistency.
  • [Fix][Cache] Now parameters decorated with CacheKey attribute are included no matter of position or index
  • [Fix][Cache] Parameter based cache keys are now allways computed to integrate value changes (skiping cachekey methodset)
  • [Fix][Attributes] Now Apizr finally can get attributes decorating parent api interfaces or crud classes
  • [Fix][Polly] Now Apizr wraps correctly resilience strategies, including typed result ones
  • [Fix][Manager] ApizrManager has been optimized and refactored to improve performances

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

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.Integrations.FileTransfer

  • [Fix] Now file data is no more logged by default while uploading or downloading

Apizr.Tools.NSwag

  • [Deprecated] Apizr.Tools.NSwag is now deprecated and will be removed in a future version, please consider using Refitter (v1.2+) instead which now can generate all the Apizr (v6+) boilerplate and more.

Apizr-v6.0.0-preview.9

29 Aug 15:08
Compare
Choose a tag to compare
Pre-release
  • [New][Resilience] Now we can use pre-configured pipeline from Microsoft Resilience packages
  • [New][Priority] Now we can set priority from appsettings configuration
  • [Breaking][CacheMode] Now CacheMode.GetAndFetch enum option has been renamed to CacheMode.FetchOrGet so that it says what it actually does and improve consistency with the other CacheMode.GetOrFetch option

Apizr-v6.0.0-preview.8

03 Aug 10:32
Compare
Choose a tag to compare
Pre-release
  • [New][Configuration] Now we can configure Apizr thanks to IConfiguration from Microsoft.Extensions (e.g. from appsetings.json) down to an interface method aka Request Options
  • [New][Configuration] Now we can configure request options at register time thanks to the brand new WithRequestOptions fluent option
  • [New][Refitter] Now we can generate all the boilerplate thanks to Refitter external package instead of the deprecated Apizr.Tools.NSwag one

Apizr-v6.0.0-preview.7

25 Jul 13:51
Compare
Choose a tag to compare
Pre-release
  • [New][Registry] Now we can add multiple registry to the container and resolve a single merged one
  • [New][DelegatingHandler] Now we can register the extended way a DelegatingHandler by its type
  • [New][HttpMessageHandler] Now we can register the extended way a HttpMessageHandler by its type
  • [New][BaseAddress/Path] Now we can set a base address or path with a duplicate strategy

Note

Refitter

This preview brings changes mainly to be compatible with the upcoming Refitter code generation for Apizr (in replacement of former Apizr.Tools.NSwag)

Apizr-v6.0.0-preview.6

18 Jul 15:02
Compare
Choose a tag to compare
Pre-release

Changes:

  • [New/Breaking][BaseAddress] Now we can set base address with the brand new BaseAddress attribure instead of the now removed WebApi, CrudEntity or MappedCrudEntity useless ones, and only if you need to set it at design time
  • [New/Breaking][AutoRegister] Now we can tell Apizr to auto register apis with the brand new AutoRegister attribure instead of the now removed WebApi, CrudEntity or MappedCrudEntity useless ones
  • [New/Breaking][MappedWith] Now we can tell Apizr to map data while using MediatR/Optional thanks to the yet known MappedWith attribure instead of the now removed CrudEntity or MappedCrudEntity useless ones
  • [Optims] Deep manager and builders refactoring to improve performances

Apizr-v6.0.0-preview5

24 Jun 10:02
Compare
Choose a tag to compare
Apizr-v6.0.0-preview5 Pre-release
Pre-release

All

  • [New][Configuration] Now we can configure Apizr thanks to IConfiguration from Microsoft.Extensions (e.g. from appsetings.json)
  • [New][Polly] Now we can set resilience pipelines to apply fluently to the request thanks to the brand new WithResiliencePipelineKeys fluent option
  • [New][Polly] Now we can scope resilience pipelines executions to specific http method groups thanks to the brand new WithResiliencePipelineKeys's ApizrRequestMethod[] optional parameter
  • [New][Polly] Now we can scope resilience pipelines executions to specific http method groups thanks to all brand new scoped {RequestMethod}ResiliencePipeline attributes like GetResiliencePipeline
  • [New][Cache] Now we can set caching options to apply fluently to the request thanks to the brand new WithCaching fluent option
  • [Fix][Attributes] Now Apizr finally can get attributes decorating parent api interfaces or crud classes
  • [Fix][Polly] Now Apizr wraps correctly resilience strategies, including typed result ones
  • [Fix][Manager] ApizrManager has been optimized and refactored to improve performances

Apizr.Integrations.FileTransfer

  • [Fix] Now file data is no more logged by default while uploading or downloading

Apizr-v6.0.0-preview.4

24 May 15:31
Compare
Choose a tag to compare
Pre-release

All

  • [New][HttpTracer/Headers] Now we can redact any header sensitive values from logs at design time by surrounding header values with a * star symbol rigth into the Headers attribute

Apizr

  • [New][Cache] Now CacheKey attribute allows composite cache key generation from multiple decorated parameters
  • [Fix][Cache] Now parameters decorated with CacheKey attribute are included no matter of position or index

Apizr-v6.0.0-preview.3

02 May 09:26
Compare
Choose a tag to compare
Pre-release

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

29 Mar 14:53
Compare
Choose a tag to compare
Pre-release
  • [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