azure 如何返回OkObjectResult而不使用格式设置程序等额外的东西?

5ktev3wc  于 2023-02-25  发布在  其他
关注(0)|答案(1)|浏览(116)

从Azure函数返回OkObjectResult时,如下所示:

[Function("ReturnFoo")]
    public async Task<IActionResult> ReturnFoo([HttpTrigger(AuthorizationLevel.Anonymous, "post")]
        HttpRequestData req,
        FunctionContext executionContext)
    {
    object o = new
    {
        Foo = "bar"
    };

    return new OkObjectResult(o)
    }

它向客户端返回以下JSON:

{
  "Value": {
    "Foo": "bar"
  },
  "Formatters": [],
  "ContentTypes": [],
  "DeclaredType": null,
  "StatusCode": 200
}

我怎样才能返回没有这些额外东西的json呢?我只想:

{
  "Value": {
    "Foo": "bar"
  }
}

或者,更好的是:

{
    "Foo": "bar"
  }

我知道我可以将Azure函数的返回类型更改为“object”,但我确实希望返回IActionResult,以便可以轻松地从此同一函数返回其他消息。
我已经浪费了很多时间来尝试让它与自定义JSonFormatters一起工作,并尝试使用JsonResult(它也有臃肿的属性),但它不起作用,我怀疑我错过了一些非常明显和简单的东西。感谢支持。

zkure5ic

zkure5ic1#

对于具有独立函数的.NET 5+,您应该使用HttpResponseData,这是一种过程性更强的数据返回方式。https://learn.microsoft.com/en-us/azure/azure-functions/dotnet-isolated-process-guide#bindings
希望API在未来会有所改善。
有关类似问题,请参见:Using IActionResult with Azure Functions in .NET 5?

相关问题