I'm building a serverless app using API Gateway and Lambda (Serverless Framework) and trying to find a way to provide multiple versions of our app's API.
Here's the way I can think of.
serverless.yml
handler: list.handler
events:
- http:
path: {ver}/list
method: get
cors: true
authorizer: aws_iam
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;
}
}
fooUtil.js
export function getNo(ver) {
if (ver >= 1.3) {
return 3;
} else {
return 2;
}
}
However, I need to pass "ver" parameter to all functions this way.
Is there any way easier (and testable) to fetch version no from request like below?
fooUtil.js
export function getNo() {
if (session.getValue('ver') >= 1.3) {
}
}
I prefer not to divide repositories or git branches to manage multiple versions.