如何在无服务器中为一个处理程序定义多个路径?
How to define multiple paths for one handler in serverless?
我一直在网上尝试和搜索,但没有找到回复。是否可以使用无服务器框架实现以下目标:
我想使用具有以下定义代码的 get.handler
来获取一个项目和获取所有项目。所以:
- 如果我点击
api.example.com/items/
我会检索所有项目
- 如果我点击
api.example.com/items/1234
我会用 id = 1234
检索项目
- get_items:
handler: project/items/get.handler
events:
- http:
path: items/{itemId}
method: get
到目前为止 在 get.handler
我检查 event.pathParameters? event.pathParameters.itemId : null
如果特定项目存在并调用一些 getItem(itemdId)
函数,如果它不存在退出我调用 getAll()
函数。
如果我在它有效的路径中传递项目 ID,但是当我请求 api.example.com/items/
时,我收到以下错误:
not a valid key=value pair (missing equal-sign) in Authorization header
。这意味着我的路径有问题,我必须将项目 ID 传递给路径参数。
我的问题是: 有没有办法在 - http:
区域使用多个路径,或者推荐的解决这个问题的方法是什么(只是创建两个单独的处理程序)?
有两种方法可以轻松完成您要查找的内容。
首先,lambda 函数可以由多个事件触发。您可以像这样向处理程序数组添加另一个 http
事件:
get_items:
handler: project/items/get.handler
events:
- http:
path: items/{itemId}
method: get
- http:
path: items/
method: get
或者,您可以使用 {proxy+}
参数。您可以阅读有关各种代理方法的更多信息 here
我一直在网上尝试和搜索,但没有找到回复。是否可以使用无服务器框架实现以下目标:
我想使用具有以下定义代码的 get.handler
来获取一个项目和获取所有项目。所以:
- 如果我点击
api.example.com/items/
我会检索所有项目 - 如果我点击
api.example.com/items/1234
我会用id = 1234
检索项目
- get_items:
handler: project/items/get.handler
events:
- http:
path: items/{itemId}
method: get
到目前为止 在 get.handler
我检查 event.pathParameters? event.pathParameters.itemId : null
如果特定项目存在并调用一些 getItem(itemdId)
函数,如果它不存在退出我调用 getAll()
函数。
如果我在它有效的路径中传递项目 ID,但是当我请求 api.example.com/items/
时,我收到以下错误:
not a valid key=value pair (missing equal-sign) in Authorization header
。这意味着我的路径有问题,我必须将项目 ID 传递给路径参数。
我的问题是: 有没有办法在 - http:
区域使用多个路径,或者推荐的解决这个问题的方法是什么(只是创建两个单独的处理程序)?
有两种方法可以轻松完成您要查找的内容。
首先,lambda 函数可以由多个事件触发。您可以像这样向处理程序数组添加另一个 http
事件:
get_items:
handler: project/items/get.handler
events:
- http:
path: items/{itemId}
method: get
- http:
path: items/
method: get
或者,您可以使用 {proxy+}
参数。您可以阅读有关各种代理方法的更多信息 here