dotnet / dotnet/AspNetCore.Docs

Support F# `Async<'T>` as an awaitable type in minimal APIs

Open
#31,140 1 comment 0 reactions 0 assignees View on GitHub
:bomb: vanQUEST 9.0 code help wanted Help wanted Pri1 seQUESTered
Dominant language
C#
Stars
13.1k
Forks
24.6k
Avg merge
1d 3h
Merged PRs (30d)
97

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`, when `unit` is 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` → `Task`
- `ValueTask` → `ValueTask`
- `Async` → `Task`

With default serialization settings, endpoints with the return types `Task` or `ValueTask`, whose response body was formerly the JSON token `null`, 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

---

---
[Associated WorkItem - 186857](https://dev.azure.com/msft-skilling/Content/_workitems/edit/186857)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.