Can't get url configuration to work with Swagger UI on AWS
Hi all.
I'm deploying a python flask application to AWS Lambda, served through AWS API Gateway using Serverless Framework.
Everything works great, except the swagger ui when served on AWS.
Currently, my application (dev version) is deployed to some address:
https://ID.execute-api.us-east-1.amazonaws.com/dev
Swagger ui is indeed accessible at:
https://ID.execute-api.us-east-1.amazonaws.com/dev/ui
The problem is, it tries to load the openapi.json file from the root path:
https://ID.execute-api.us-east-1.amazonaws.com/openapi.json
instead of the relative path:
https://ID.execute-api.us-east-1.amazonaws.com/dev/openapi.json
If I change the "explore" URL to "/dev/openapi.json" manually at the top of the page, the UI loads, but then again, "trying out" endpoints through the UI calls endpoints at the root instead of the relative path:
https://ID.execute-api.us-east-1.amazonaws.com/endpoint
instead of
https://ID.execute-api.us-east-1.amazonaws.com/dev/endpoint
If I set the base path to /dev in the specification using the servers setting, the ui is no longer accessible at /dev/ui. It's then served at /dev/dev/ui.
Then again, I need to change the "explore" url to /dev/dev/openapi.json and all calls are sent to /dev/endpoint instead of /dev/dev/endpoint.
Am I missing something? Or does swagger ui doesn't support this use case?
The only solution I can think of is deploying the api to different API Gateways, so that the basepath will always be:
https://ID_DEV.execute-api.us-east-1.amazonaws.com
instead of:
https://ID.execute-api.us-east-1.amazonaws.com/dev