After migrating my Azure Functions project to .NET 5, it has started wrapping my responses in a weird wrapper class.
For instance, consider the following endpoint:
public record Response(string SomeValue);
[Function("Get")]
public async Task<IActionResult> Get(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "get-something")]
HttpRequestData request)
{
return new OkObjectResult(new Response("hello world"));
}
Before, it would return:
{
"someValue": "hello world"
}
But now, it returns:
{
"Value": {
"SomeValue": "hello world"
},
"Formatters": [],
"ContentTypes": [],
"DeclaredType": null,
"StatusCode": 200
}
I get that it must be because it just tries to serialize the object result, but I can't find any documentation on how this is supposed to work in .NET 5.
My main function currently looks like this:
public static async Task Main()
{
var host = new HostBuilder()
.ConfigureFunctionsWorkerDefaults(x =>
x.UseDefaultWorkerMiddleware())
.ConfigureAppConfiguration((_, builder) => builder
.AddJsonFile("local.settings.json", true)
.Build())
.ConfigureServices(ConfigureServices)
.Build();
await host.RunAsync();
}
My project is located here, in case someone are interested: https://github.com/sponsorkit/sponsorkit.io
Currently, my .NET 5 work is on a branch called feature/signup-flow
.