aws-apigateway: Automatically adding path parameters for proxy resources #28545
Labels
@aws-cdk/aws-apigateway
Related to Amazon API Gateway
effort/medium
Medium work item – several days of effort
feature-request
A feature should be added or improved.
p2
Describe the feature
When trying to create proxy resource of
/api/{proxy+}
in REST API like thisThe proxy resource it creates is missing path parameter for
proxy
, resulting it always sending request to integration backend on the path/api/
, which isn't what we intuitively want for the proxy resource.What it requires is two additional configs, one in the method, and one in the integration
It would be nice if CDK can automatically configure
integration.request.path.proxy
andmethod.request.path.proxy
for proxy resources, so we don't have to explicitly configure them, similar to the UX from AWS console, when adding a proxy resource manually through the UI, these path params are automatically set.Use Case
To make CDK work out of the box with sensible defaults when creating proxy resources, without requiring deep knowledge of nuances of API Gateway.
It took me a long time searching on the web, and still couldn't figure out the part where I originally missed
These are some relevant docs I could find during my initial search:
'integration.request.path.proxy': 'method.request.path.proxy'
but not'method.request.path.proxy': true
;'method.request.path.proxy': true
neither; while the other answer did showmethod.request.path.proxy: true # enable proxy
, it's very easy to miss and hard to correlate with corresponding CDK code.With the above docs, I only added
requestParameters: { 'integration.request.path.proxy': 'method.request.path.proxy' },
to my integration, and got error:Which is arguably confusing and unhelpful for someone doesn't already familiar with API Gateway nuances.
This remained a mystery for me until I contacted AWS support that the support technician pointed out my missing part and where the related official doc is located
Which is arguably very difficult to find and correlate it with my problem when I'm not already familiar with various nuances of API Gateway, as I was searching for solutions specifically about how to make the proxy working.
Proposed Solution
maybe add a parameter
proxyParamName
toProxyResourceOptions
, so we can calladdProxy()
likeThen it will automatically set
'method.request.path.myProxyParam': true
and'integration.request.path.myProxyParam': 'method.request.path.myProxyParam'
Other Information
No response
Acknowledgements
CDK version used
2.115.0
Environment details (OS name and version, etc.)
N/A
The text was updated successfully, but these errors were encountered: