gpt4 book ai didi

node.js - 在 Azure Functions (NodeJS) 中处理多个 HTTP 方法的正确方法是什么

转载 作者:行者123 更新时间:2023-12-05 01:12:29 26 4
gpt4 key购买 nike

在 Azure Functions 中构建应用程序时,您可以指定 function.json 中接受的 HTTP 方法

给定一个 API,您可以对其执行多项功能(GET、PUT POST 等),创建该功能或多个功能的最佳方式是什么。

将需要共享逻辑和库,所以我正在寻找一种模式,可以在单个类中启用所有方法,但不确定如何在 function.json 中定义它,这样每个 HTTP 方法都可以有自己的入口点。

另一种选择是创建一个函数,该函数基本上选择起作用的方法和类,但这似乎是一些中间件开销,我相信可以用更好的方式处理。

即我不认为我应该为我为其创建函数的每个对象都这样做,并且必须有更好的模式。

 async HandleRequest(){
return validateJwt(function(context,req){
if(req.method === 'GET'){
}
else if(req.method === 'POST'){

}
else if(req.method === 'DELETE'){

}
else if(req.method === 'PUT'){

}
else if(req.method === 'PATCH'){

}
});
}

最佳答案

所以最好的方法是使用多个函数。

您可以在 function.json 文件中通过路由和方法定义函数。看例子。

注意 route:family/{id:int} 这是该函数将处理的唯一路由。您还放入 "methods": ["get"] 以将函数限制为 GET。

为每个方法创建一个函数,以提高代码的可维护性。然后,在我拥有一个执行 CRUD 操作(包括管理与数据库的连接)的通用 FamilyHandler 类之前,我使用了一些中间件功能(执行身份验证和错误处理)。

{
"bindings": [
{
"authLevel": "anonymous",
"type": "httpTrigger",
"direction": "in",
"name": "req",
"methods": ["get"],
"route": "family/{id:int}"
},
{
"type": "http",
"direction": "out",
"name": "res"
}
]
}

我在以下文档中发现了这一点 https://learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-http-webhook-trigger?tabs=javascript

关于node.js - 在 Azure Functions (NodeJS) 中处理多个 HTTP 方法的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61910370/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com