Is it possible to allow multiple request methods e.g. GET & PUT for the same httpApi route?
The only way I can see to do it as by passing a wildcard * as the method and then doing the method validation on the lambda itself.
Is it possible to allow multiple request methods e.g. GET & PUT for the same httpApi route?
The only way I can see to do it as by passing a wildcard * as the method and then doing the method validation on the lambda itself.
I was wanting to use the same lambda function.
But it looks like I can declare another function in serverless.yml and point to the same function code.
Just a shame you cant have multiple http events with the same path but different methods under the same function declaration
You certainly can.
Just whipped up a quickie poc of it with:
...
"input": {
"version": "2.0",
"routeKey": "GET /hello",
"rawPath": "/hello",
...
AND
$ mkdir multiroute
$ cd multiroute
$ sls create -t aws-nodejs
Then edit the serverless.yml to look like:
service: multiroute
frameworkVersion: '2'
provider:
name: aws
runtime: nodejs12.x
lambdaHashingVersion: 20201221
stage: dev
region: us-west-2
functions:
hello:
handler: handler.hello
events:
- httpApi:
path: /hello
method: get
- httpApi:
path: /hello
method: post
Didn’t even touch the generated handler.js file.
Deployed via
sls deploy
Then hit it with Postman with both a GET and a POST
and got back the extected response:
...
"input": {
"version": "2.0",
"routeKey": "POST /hello",
"rawPath": "/hello",
...
Hope it helps.
I tried this and it did not work for me. I am using frameworkVersion 3, I wonder if that makes a difference.
hello, I configured the multiple path as you described above . But, its throwing error while deployment in AWS. I have used " - serverless-plugin-split-stacks " in my project.