Releases: giraffe-fsharp/Giraffe
5.0.0-rc-1
Upgraded to .NET 5. The 5.x version of Giraffe is targeting net5.0
and dropping support for all other target frameworks. If you cannot upgrade a project to .NET 5 yet then stay on an older version of Giraffe until you can. Giraffe has always been a .NET Core centered project and in the .NET Core world (and now .NET 5 world) there is little to no reason why a project should remain on an old .NET Core version for a long time when upgrade paths are mostly as simple as changing the <TargetFramework>
property in an .fsproj
file.
Summary of changes going into 5.0.0-rc-1
-
Only supported target framework is .NET 5
-
Added
Giraffe.EndpointRouting
namespace with a version of a few routing handlers which integrate with ASP.NET Core's endpoint routing API- Currently supported are:
route
,routef
,subRoute
and HTTP verb handlers such asGET
,POST
,PUT
, etc. - Check the Endpoint Routing documentation for more details
- Or check the
EndpointRoutingApp
sample app for how to useGiraffe.EndpointRouting
- Currently supported are:
-
Replaced
Giraffe.GiraffeViewEngine
with the standalone NuGet packageGiraffe.ViewEngine
-
New
JsonOnlyNegotiationConfig
for setting a content negotiation policy which only supports JSON serialisation (no XML for those who don't need it) -
Added
SystemTextJsonSerializer
which usesSystem.Text.Json
for JSON serialisation when configured as the desired JSON serializer in Giraffe -
Improved RegEx http handlers in original (non Endpoint routing) http handlers
-
Swapped Markdown docs for XML docs for all functions.
-
Added support for complex model binding (see #416)
5.0.0-alpha-003
- Enhanced Endpoint routing with a metadata list (see PR #437)
5.0.0-alpha-002
- Swapped Markdown docs for XML docs for all functions.
- Improved endpoint routing by deferring the creation of
RequestDelegate
functions. - Added dependency to new
Giraffe.ViewEngine
package and re-introduced thehtmlView
andWriteHtmlViewAsync
functions into Giraffe. - Added support for complex model binding (see #416)
5.0.0-alpha-001
- Only supported target framework is .NET Core 3.1 (in preparation for .NET 5)
- Added
System.Text.Json
serializer - Added
Giraffe.EndpointRouting
namespace with a super early alpha version of new routing handlers which integrate with ASP.NET Core's endpoint routing API (check out theEndpointRoutingApp
sample app for examples before the documentation is ready) - Removed
Giraffe.GiraffeViewEngine
(in preparation to distribute it as a separate NuGet package, which doesn't exist yet). This release has noGiraffeViewEngine
which is one of the reasons why it's analpha-001
release. Plans are to bring it back in5.0.0-alpha-002
- New
JsonOnlyNegotiationConfig
for setting a content negotiation which only supports JSON serialisation and not XML - Improved RegEx http handlers in original (non Endpoint routing) http handlers
- Added
SystemTextJsonSerializer
which usesSystem.Text.Json
for JSON serialisation when configured as the desired JSON serializer in Giraffe
4.1.0
4.0.1
Fixed dependency references for TFM netcoreapp3.0
projects.
4.0.0
Giraffe 4.0.0 has been tested against netcoreapp3.0
alongside netcoreapp2.1
and net461
. All sample code has been upgraded to .NET Core 3.0 as well.
ATTENTION:
This release of Giraffe fixes a bug in the routef
handler which would have previously matched a route too eagerly.
Before:
Route: /foo/bar/hello/world
routef: /foo/bar/%s
Match: true
Now:
Route: /foo/bar/hello/world
routef: /foo/bar/%s
Match: false
For more information please see issue #347.
New features
- Support array of 'T as a child in form binding
- Added a new
DateTime
extension methodToIsoString
which produces a RFC3339 formatted string, and corrected the docs on the existingToHtmlString
extension method which actually produces a RFC822 formatted string.
Bug fixes and breaking changes
-
Fixed
routef
to not match more than one URL path segment. -
Fixed the
_ariaLabelledBy
attribute in theGiraffeViewEngine
-
Fixed case insensitive route handlers on Ubuntu
-
Changed minimum version of
Newtonsoft.Json
to11.0.2
. This allows Giraffe to be compatible with Azure Functions. -
Renamed
tryMatchInput
totryMatchInputExact
and swapped the order of arguments so that the string value comes last -
Added new version of
tryMatchInput
which acceptsMatchSettings
record:type MatchMode = | Exact // Will try to match entire string from start to end. | StartsWith // Will try to match a substring. Subject string should start with test case. | EndsWith // Will try to match a substring. Subject string should end with test case. | Contains // Will try to match a substring. Subject string should contain test case. type MatchOptions = { IgnoreCase: bool; MatchMode: MatchMode; }
3.6.0
Bug fixes
- Fixed a bug in the
subRouteCi
http handler, which prevented nested sub routes to be case insensitive.
New features
- Added two new
HttpContext
extension methods to retrieve cookie and form values:GetCookieValue (key : string)
GetFormValue (key : string)
3.5.1
Bug fixes
- Fixed a bug in Giraffe's model binding to not try to set read only properties anymore.
3.5.0
New features
- Updated all packages and framework library dependencies to .NET Core 2.2.
- Added a new
GET_HEAD
http handler (see: #314 for more info). - Added a new convenience function called
handleContext
, which can be used for creating newHttpHandler
functions.
Bug fixes
- Fixed the
_data
attribute in theGiraffeViewEngine
to accept akey
andvalue
parameter now.