Comments (6)
Checking for a match on resource
(v1) or routeKey
(v2) shouldn't be too hard to include, but I don't think it's necessary.
Try adding in /{stage}
to the start of your path:
const routes = [
{
method: 'GET',
path: '/{stage}/tenants',
handler: getHandler
}
]
This should do it for you. I would recommend you validate the pathParameter stage
is one of the allowed values configured in API Gateway as well.
from middy.
Iβm not sure if I understand what you are proposing. What has the stage to do with it/how would that help?
from middy.
{stage}
== identity
or anything else in this case, stage
is just the term I've heard used with this pattern.
from middy.
Ah okay. I see. This is what I did actually, but it leads to strange inconsistencies. For example testing an endpoint in the api gateway console throws a route not found error (since the base path is stripped) while testing the same path e2e works fine. Itβs a weird behaviour in aws but using the resource key would work around that.
from middy.
For example testing an endpoint in the api gateway console throws a route not found error (since the base path is stripped) while testing the same path e2e works fine.
Ohhhh, that's interesting. Might be worth reporting to AWS?
Alternatively you could have 1 lambda per endpoint, and not need the router all together. This is the approach I use, most so I can have an IAM role for each endpoint.
I'm going to close this issue, I don't see us adding in logic only for console testing support (sorry).
from middy.
Understood. AWS logic is correct. This was never about adding logic but fixing the existing logic to be in line with Api Gateway concepts, where (internal) routing happens independently of the base path. With the workaround that you suggested a service now needs to know its place (base pth, e. g identity) in a stitched/federated or versioned api. That is acceptable knowledge creep in most cases, so it probably does not warrant the effort, since the logic is easy to fork/adapt.
from middy.
Related Issues (20)
- TypeScript compile error in @middy/core 5.2.4 HOT 7
- Lambda throwing `Failed to resolve internal values` in secretsManagerMiddlewareBefore HOT 3
- Simple lib import fails with both `tsx` and `ts-node` HOT 2
- LLRT Support
- TypeScript error when using `S3Handler` type HOT 6
- middy 5.2.5 isn't available on npm HOT 1
- Please give more descriptive error when throwing "Failed to resolve internal values" in secrets-manager module HOT 2
- middy/http-cors disable defaults and don't add headers HOT 1
- Streamified response with empty body ignores other response attributes HOT 3
- `http-error-handler` to support Problem Details (RFC 9457) HOT 1
- http-error-handler : set custom test to return error instead of `statusCode` HOT 2
- http-error-handler: guidance/bug on using lambda-authorizer with v5 HOT 1
- error-logger: Call implementation function with await prefix HOT 1
- ApproximateReceiveCount limit on SqsPartialBatch HOT 5
- Conditional middleware HOT 3
- (Aware of other issues) No "exports" main defined in /var/task/node_modules/@middy/core/package.json HOT 7
- input-output-logger: replacer function is not called HOT 3
- Error: No "exports" main defined in /path/to/the/repo/node_modules/@middy/core/package.json HOT 1
- @middy/http-content-encoding not awaiting onError HOT 1
- Consistent multipart body parser response format HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from middy.