Blu*_*ame 4 http http-method node.js azure-functions
在 Azure Functions 中构建应用程序时,您可以指定 function.json 中接受的 HTTP 方法
给定一个可以执行多种功能(GET、PUT POST 等)的 API,创建该功能的最佳方法是什么。
需要提供可用的共享逻辑和库,因此我正在寻找一种可以在单个类中启用所有方法的模式,但不确定如何在 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'){
}
});
}
Run Code Online (Sandbox Code Playgroud)
因此,最好的方法是使用多个函数。
您可以在 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"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我在以下文档中发现了这一点https://learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-http-webhook-trigger?tabs=javascript
| 归档时间: |
|
| 查看次数: |
6746 次 |
| 最近记录: |