rhy*_*thm 5 amazon-web-services aws-lambda aws-api-gateway serverless-framework serverless-architecture
我正在使用API Gateway和Lambda(无服务器框架)构建无服务器应用程序,并试图找到一种方法来提供应用程序API的多个版本。
这是我能想到的方式。
无服务器
handler: list.handler
events:
- http:
path: {ver}/list
method: get
cors: true
authorizer: aws_iam
Run Code Online (Sandbox Code Playgroud)
list.js
export async function handler(event, context, callback) {
const ver = event.pathParameters.ver;
if (ver >= '1.0') {
return fooUtil.getNo(ver);
} else {
return 1;
}
}
Run Code Online (Sandbox Code Playgroud)
fooUtil.js
export function getNo(ver) {
if (ver >= 1.3) {
return 3;
} else {
return 2;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我需要以这种方式将“ ver”参数传递给所有函数。
有什么方法可以更容易(并且可以测试)从如下所示的请求中获取版本号?
fooUtil.js
export function getNo() {
if (session.getValue('ver') >= 1.3) {
}
}
Run Code Online (Sandbox Code Playgroud)
我不希望划分存储库或git分支来管理多个版本。
每个版本都有自己的资源并通过文件夹将其分开?
像这样
handler: v1.list.handler
events:
- http:
path: v1/list
method: get
cors: true
authorizer: aws_iam
handler: v2.list.handler
events:
- http:
path: v2/list
method: get
cors: true
authorizer: aws_iam
Run Code Online (Sandbox Code Playgroud)
这使您可以灵活地测试所有内容,并且对于项目的新手来说更容易,因为版本控制通过文件夹分离是明确的。
| 归档时间: |
|
| 查看次数: |
1231 次 |
| 最近记录: |