Skip to content

Releases: FastEndpoints/FastEndpoints

v5.3.2 Release

04 Nov 05:24
Compare
Choose a tag to compare

FIXES

  • swagger operation processor culture-info issue in docker #314

IMPROVEMENTS

  • swagger request & response example serialization
  • add extension method to easily obtain EndpointDefinition in a nswag op-processor #311
  • remove internal only code from default nswag op-processor #311
  • unit testability for endpoints with createdat/linkgenerator #info

v5.3.1 Release

31 Oct 03:25
Compare
Choose a tag to compare

HOTFIX

  • IEventHandler based event handler classes requiring a parameterless constructor #308

IMPROVEMENTS

  • remove readonly request dto properties from swagger doc #306
  • capitalize first letter of swagger auto tags based on path segment
  • default request binder will ignore dto props without public getter/setter

v5.3 Release

29 Oct 06:15
Compare
Choose a tag to compare

NEW

  • command bus pattern messaging #info
  • ability to publish events from anywhere #info
  • constructor injection support for event handlers #info
  • type safety for the shortcut http verb methods such as Get(), Post(), etc. #info
  • dependency resolving support for endpoint Configure() method
  • custom value parser registration at startup for any given type #info
  • specify whether to execute global pre/post processors before or after endpoint level processors #info
  • [DontInject] attribute for preventing property injection of endpoint properties
  • add Verbs(...) overload that can take any string #299

IMPROVEMENTS

  • make IEventHandler<TEvent> public and remove requirement of FastEventHandler<TEvent>#info
  • move attribute classes to a separate package FastEndpoints.Attributes #info
  • remove read-only properties from swagger request body #283
  • non-conforming DI container support #289
  • remove previously deprecated scoped validator support

FIXES

  • swagger response examples not honoring serializer settings #280
  • swagger request property xml examples not picked up for route params #287
  • property injection not working on sub-classes #292

v5.2.1 Release

15 Oct 11:28
Compare
Choose a tag to compare

HOTFIX

  • authorize attribute related NRE #281

NEW

  • x.TagDescriptions() method for swagger to supply tag descriptions #278

v5.2 Release

13 Oct 14:50
Compare
Choose a tag to compare

CHANGES

  • signature of global error response builder func has changed to include the HttpContext #docs
  • security related methods such as ep.Roles(...) in global config will now compound what's being done in the endpoint config #docs

NEW

  • support .net 7.0 via multi targeting
  • endpoint configuration with groups and sub/nested groups #docs
  • complex object binding from json object strings for query/forms/claims/headers #docs
  • ability to filter out non-fastendpoints from swagger docs #docs
  • filtering (endpoint inclusion) for swagger documents #docs
  • specify endpoint summary and description with xml comments #info
  • specify dto property level examples with xml comments #276
  • specify response examples with EndpointSummary #205
  • [Throttle(...)] attribute for configuring endpoints #227
  • min endpoint version support for AddSwaggerDoc() #244
  • non-conforming DI container support #243
  • endpoint unit testing support for attribute based config #docs
  • asymmetric jwt signing support in FastEndpoints.Security pkg #249
  • add EndpointVersion() method to EndpointDefinition for use with global config #209
  • TokenValidationParameters config action argument for AddAuthenticationJWTBearer() method #268
  • HttpContext.MarkResponseStart() and HttpContext.ResponseStarted() extension methods #230
  • complex object binding from query parameters #238 #245 #254 #266

FIXES

  • pre/post processor collection modification bug #224
  • response dto initialization not working with array types #225
  • unable to instantiate validators for unit tests #info
  • nested schema resolving in nswag operation processor #info
  • concurrent test execution bug #224
  • workaround for grpc wildcard route match conflict #info
  • plain text request fails if request contains json content type #info
  • NRE when publishing an event and no handlers are registered #259

IMPROVEMENTS

  • remove notnull constraint from TResponse generic argument of endpoint class
  • Logger endpoint property now uses ILoggerFactory to create loggers
  • apply validation rules from included/foreach validators #270
  • better unit testability of endpoints with mappers #info
  • json object array string binding of requests from swagger ui
  • optimize default request binder by reducing allocations
  • better swagger schema resolving

v5.1 Release

08 Sep 13:37
Compare
Choose a tag to compare

NEW

  • global model binder support #info
  • global request binding modifier function #info
  • constructor injection support for mappers #info
  • unit testing support for event handlers (successful execution & exceptions only) #info
  • DELETEAsync() extension method for testing #216
  • AddSwaggerDoc(removeEmptySchemas:true) parameter for removing empty schemas from swagger document #info
  • startup type discovery filter #203

FIXES

  • global endpoint configurator ineffective for route prefix override and security related calls #207 #info
  • global configurator overriding endpoint level summary object #210 #212
  • empty schema in swagger doc if under namespace #info
  • incorrect client generation with nswag #info
  • incorrect swagger doc/client generation when [FromBody] attribute was used #info
  • post processors were not executed if validation error was thrown by user code

IMPROVEMENTS

  • reworked event notification system (no api change)
  • service provider scoping
  • optimize default request binder
  • route contraint handling and property type detection in swagger processor

CHANGES

  • deprecate ability to register validators as scoped in favor of CreateScope() method #info

v5.0 Release

24 Aug 06:00
Compare
Choose a tag to compare

BREAKING CHANGES

this major version jump introduces some minor breaking changes to the startup configuration.

1. restructured configuration

the Config object structure has been re-organized and made more convenient to use.

app.UseFastEndpoints(c =>
{
    c.Serializer.Options.PropertyNamingPolicy = null;
    c.Endpoints.RoutePrefix = "api";
    c.Endpoints.ShortNames = false;
    c.Endpoints.Filter = ...
    c.Endpoints.Configurator = ...
    c.Versioning.Prefix = "V";
});

read the docs here.

2. reworked global endpoint configuration

the GlobalEndpointOptions was removed in favor or Endpoints.Configurator.
this will be the new place to configure globally applicable endpoint settings.
most of the same endpoint configuration methods are available for use on the ep (EndpointDefinition) argument as shown below:

app.UseFastEndpoints(c =>
{
    c.Endpoints.Configurator = ep =>
    {
        ep.AllowAnonymous();
        ep.Options(b => b.RequireHost("admin.domain.com"));
        ep.Description(b => b.Produces<ErrorResponse>(400));
    });
});

read the docs here

NEW

  • code snippets added to visual studio extension #info
  • FastEndpoints.ClientGen package for c# and typescript client generation with NSwag #info
  • override default model binding logic by inheriting from RequestBinder<TRequest> class #info
  • global pre/post processor support #info
  • DontCatchExceptions() method to enable custom exception handler middleware #186
  • IncludeAbstractValidators startup flag for including validators inheriting AbstractValidator<TRequest> in auto registration #info
  • Validator<TValidafor>() method for being explicit in the endpoint configuration #info
  • RequestMapper<TRequest,TEntity> and ResponseMapper<TResponse,TEntity> classes #info
  • EndpointWithMapper<TRequest, TMapper> and EndpointWithoutRequest<TResponse, TMapper> classes #188
  • ProducesProblemFE() extension method for RouteHandlerBuilder #info
  • ability to customize permissions claim type #187
  • multiple route support for http attributes #129

IMPROVEMENTS

  • remove the new() contraint on response dtos so a parameterless ctor is not needed on response classes #184
  • built-in unhandled exception handler now sends a response of type InternalErrorResponse
  • ValidationFailureException class now has the failure details #186
  • support for non-ascii chars in Content-Disposition header #info
  • warn user at start up if duplicate validators are found and user is not being explicit about which one to use #190
  • increase logging in validation schema processor #117
  • add jetbrains external annotations #191
  • update dependencies to latest

FIXES

  • swagger schema becoming invalid overnight #173
  • swagger example couldn't handle IEnumerable records #195
  • oversight in duplicate route detection code
  • minor issue in versioning system related to default version and swagger

v4.4 Release

03 Aug 15:22
Compare
Choose a tag to compare

NEW

  • doc site refresh: http://fast-endpoints.com
  • custom request model binder support via IRequetBinder<TRequest> interface #172
  • [FromBody] attribute for binding request json body to a dto sub property #info
  • swagger integration for [FromBody] attribute
  • support for binding duplicate query param values to IEnumerable properties #165
  • support for binding duplicate headers to IEnumerable properties
  • UpdateEntity() method for mapper to update an entity from the request dto #167
  • support for [DefaultValue(...)] attribute with swagger #info

FIXES

  • swagger issue when ApiController exists in same project #163
  • enum binding from route cause NRE when value is invalid or case not matched #info

v4.3.1 Release

13 Jul 02:54
Compare
Choose a tag to compare

FIXES

  • custom TryParse() method precedence over JsonSerializer issue #155
  • EndpointDiscoveryOptions not considered in AddFastEndpoints() #157
  • IEnumerable property binding not allowing pre-processors to work #161
  • assembly scanning blocked if user's namespaces are in exlusion list #162
  • plain text request binding with IPlainText issue introduced in v4.3
  • concurrency issue with xunit parallel test runs

v4.3 Release

17 Jun 10:34
Compare
Choose a tag to compare

NEW

  • endpoint discovery options argument for AddFastEndpoints()
  • source generator support for startup type discovery #117
  • http HEAD support #144

IMPROVEMENTS

  • support empty requests with application/json content type #147
  • throw exception if swagger pipeline is misconfigured #122
  • validator inheritance for swagger-fluentvalidation integration #126 #135 #141
  • cancellation token support for hooks #134
  • upgrade dependancies to latest

FIXES

  • binding duplicate claim types such as role #131
  • not finding generic parameters of Summary<TEndpoint,TRequest> at startup
  • model binding issue with generic request dtos #143

CHANGES

  • specifying custom assemblies at startup should now be done like: AddFastEndpoints(o=> o.Assemblies = ...)
  • AbstractValidator<T> classes will no longer be auto discovered due to #140
  • moved ValidationFailureException to FastEndpoints namespace. you'll have to add a Using FastEndoints; import statement if this class is referenced from your code.