Azure / Azure/azure-functions-dotnet-worker
HttpTrigger GET parameters not mapped to custom class in .NET 8 and isolated
- Dominant language
- C#
- Stars
- 466
- Forks
- 215
- Avg merge
- 3d 10h
- Merged PRs (30d)
- 7
Description
### What version of .NET does your existing project use?
.NET 6
### What version of .NET are you attempting to target?
.NET 8
### Description
We are upgrading our .NET 6 in-process function apps to .NET 8 isolated.
In general, upgrade have been fairly easy and doable.
Therefore I was also very surprised when I discovered that our custom PoCo request parameters was always null in our GET HTTPTriggers.
POST works, by adding [Microsoft.Azure.Functions.Worker.Http.FromBody], but GET parameters is not working.
After many hours of research, I was surprised to figure out this was not support!
```
public class DummyPoCo
{
public string Id { get; set; }
public int Skip { get; set; }
public int Take { get; set; }
}
[Function("DummyGet")]
public async Task DummyGet([HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "dummy")] DummyPoCo parameters, HttpRequest req, CancellationToken hostCancellationToken)
{
//parameters is always null for GET requests
throw new NotImplementedException();
}
```
This 1 year old post, describes the exact same problem - what use to work out of the box in .NET 6 in-process is not working in .NET 8 and isolated.
https://learn.microsoft.com/en-us/answers/questions/1186948/how-to-get-parameter-binding-in-azure-function-iso
As Microsoft are forcing us to .NET 8 and isolated before end of 2026, this have to be implemented, as I assume a lot of people need this.
I'm sorry, but its simply not good enough to manually have to do this via the HttpRequestData.
So is this something that is on the roadmap - I really hope so :)
### Project configuration and dependencies
```
net8.0
v4
XXX
XXXX
Exe
PreserveNewest
PreserveNewest
Never
```
### Link to a repository that reproduces the issue
_No response_
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the DummyGet entry point and the Microsoft.Azure.Functions.Worker.Extensions.Http package references in the project configuration; reproduce the null binding with GET query parameters. Trace the isolated HttpTrigger binding behavior and add coverage for the custom DummyPoCo case. Done means GET values populate Id, Skip, and Take without manual HttpRequestData parsing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, csharp
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100