Azure 使用 C# 以多种方法运行单个 HTTP 触发器

Azure functions single HTTP trigger with multiple methods using C#

目前每个函数都可以这样做吗? "methods" 是指多个 HTTP 动词,例如 "get"、"post"、"put" 等

在 Web API 中使用控制器,我们可以通过分配控制器中不同方法调用的属性来做到这一点 class。

azure函数中有这样的东西吗?

是的,可以通过函数的 function.json 文件中的 methods 属性 为函数指定一个或多个 http 方法。默认情况下 methods 未指定,这意味着该函数接受所有方法。当您指定受限集时,仅允许使用这些方法,任何其他方法都将导致 405 "Method Not Allowed" 响应。

{
    "bindings": [
        {
            "type": "httpTrigger",
            "name": "req",
            "direction": "in",
            "methods": [ "post", "put" ]
        },
        {
            "type": "http",
            "name": "$return",
            "direction": "out"
        }
    ]
}

我们很快就会发布这方面的一些重大改进。我们将支持自定义 http 路由,以及完整的路由模板等,这将允许您以您期望的方式定义 REST API。使用这一新功能,您可以让一个函数处理资源的 GET 请求,另一个函数处理 PUT/POST,两者都使用 restful 路由方案,如 products/{category}/{id?}。这些即将发生的变化将使您能够完成所有 WebAPI 路由方案。