Support F# `Async<'T>` as an awaitable type in minimal APIs
#31,140 opened on Nov 27, 2023
Description
I'm opening this as a placeholder to ensure that the changes from https://github.com/dotnet/aspnetcore/pull/46898 make it into the release notes for 9.0. See also: https://github.com/dotnet/aspnetcore/issues/46773.
I see that 8.0 had #28596, so this issue should be linked to the equivalent for 9.0, if there ends up being one.
Additions
- Support F#
Async<'T>as an awaitable type in minimal APIs endpoints.
Changes
-
New runtime coercions:
unit⇝void, whenunitis the generic type argument of a generic awaitable type. These coercions apply both to minimal APIs endpoints as well as to controller action methods.Task<unit>→TaskValueTask<unit>→ValueTaskAsync<unit>→Task
With default serialization settings, endpoints with the return types
Task<unit>orValueTask<unit>, whose response body was formerly the JSON tokennull, will now return an empty response body instead.
EDIT by @Rick-Anderson to add the following metadata
Page URL
https://learn.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis?view=aspnetcore-9.0
Content source URL
https://github.com/dotnet/AspNetCore.Docs/blob/main/aspnetcore/fundamentals/minimal-apis.md
Document ID
b09824ab-b051-75a1-13b7-b0e281cc46e0
Article author
Rick-Anderson