Releases: FastEndpoints/FastEndpoints
Releases · FastEndpoints/FastEndpoints
v5.3.2 Release
v5.3.1 Release
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
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 ofFastEventHandler<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
v5.2.1 Release
v5.2 Release
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 toEndpointDefinition
for use with global config #209 TokenValidationParameters
config action argument forAddAuthenticationJWTBearer()
method #268HttpContext.MarkResponseStart()
andHttpContext.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 fromTResponse
generic argument of endpoint class Logger
endpoint property now usesILoggerFactory
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
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 #216AddSwaggerDoc(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
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 withNSwag
#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 #186IncludeAbstractValidators
startup flag for including validators inheritingAbstractValidator<TRequest>
in auto registration #infoValidator<TValidafor>()
method for being explicit in the endpoint configuration #infoRequestMapper<TRequest,TEntity>
andResponseMapper<TResponse,TEntity>
classes #infoEndpointWithMapper<TRequest, TMapper>
andEndpointWithoutRequest<TResponse, TMapper>
classes #188ProducesProblemFE()
extension method forRouteHandlerBuilder
#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
v4.4 Release
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
v4.3.1 Release
FIXES
- custom
TryParse()
method precedence over JsonSerializer issue #155 EndpointDiscoveryOptions
not considered inAddFastEndpoints()
#157IEnumerable
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
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
toFastEndpoints
namespace. you'll have to add aUsing FastEndoints;
import statement if this class is referenced from your code.