Skip to content

Releases: giraffe-fsharp/Giraffe

5.0.0-rc-1

22 Nov 10:25
Compare
Choose a tag to compare
5.0.0-rc-1 Pre-release
Pre-release

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 as GET, POST, PUT, etc.
    • Check the Endpoint Routing documentation for more details
    • Or check the EndpointRoutingApp sample app for how to use Giraffe.EndpointRouting
  • Replaced Giraffe.GiraffeViewEngine with the standalone NuGet package Giraffe.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 uses System.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

01 Sep 21:26
Compare
Choose a tag to compare
5.0.0-alpha-003 Pre-release
Pre-release
  • Enhanced Endpoint routing with a metadata list (see PR #437)

5.0.0-alpha-002

21 Jun 23:42
Compare
Choose a tag to compare
5.0.0-alpha-002 Pre-release
Pre-release
  • 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 the htmlView and WriteHtmlViewAsync functions into Giraffe.
  • Added support for complex model binding (see #416)

5.0.0-alpha-001

27 May 23:24
Compare
Choose a tag to compare
5.0.0-alpha-001 Pre-release
Pre-release
  • 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 the EndpointRoutingApp 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 no GiraffeViewEngine which is one of the reasons why it's an alpha-001 release. Plans are to bring it back in 5.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 uses System.Text.Json for JSON serialisation when configured as the desired JSON serializer in Giraffe

4.1.0

13 Apr 11:30
Compare
Choose a tag to compare
  • Removed redundant dependencies
  • Fixed model binding for arrays (see #403)
  • Fixed pre-condition bug for the If-Unmodified-Since HTTP header (see #402)
  • Added netcoreapp3.1 support

4.0.1

18 Oct 16:12
Compare
Choose a tag to compare

Fixed dependency references for TFM netcoreapp3.0 projects.

4.0.0

29 Sep 11:48
Compare
Choose a tag to compare

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 method ToIsoString which produces a RFC3339 formatted string, and corrected the docs on the existing ToHtmlString 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 the GiraffeViewEngine

  • Fixed case insensitive route handlers on Ubuntu

  • Changed minimum version of Newtonsoft.Json to 11.0.2. This allows Giraffe to be compatible with Azure Functions.

  • Renamed tryMatchInput to tryMatchInputExact and swapped the order of arguments so that the string value comes last

  • Added new version of tryMatchInput which accepts MatchSettings 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

10 Feb 14:43
Compare
Choose a tag to compare

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

20 Jan 13:45
Compare
Choose a tag to compare

Bug fixes

  • Fixed a bug in Giraffe's model binding to not try to set read only properties anymore.

3.5.0

28 Dec 23:24
Compare
Choose a tag to compare

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 new HttpHandler functions.

Bug fixes

  • Fixed the _data attribute in the GiraffeViewEngine to accept a key and value parameter now.