Skip to content

swagger UI send request to endpoint without stage and return 403 #10

@kingkenmark

Description

@kingkenmark

I managed to create and deploy an application to AWS via this sls-flask service, but the swagger generated doesn't work, after enable the developer tools on Chrome, I found click the execute on swagger, it sends the request to an endpoint with stage, for example:

After "sls deploy -s dev", the output will contain the endpoint which looks like:
https://xxxxxx.execute-api.ap-southeast-2.amazonaws.com/dev

And the swagger page can be accessed via:
https://xxxxxx.execute-api.ap-southeast-2.amazonaws.com/dev/api/swagger

But when click the "execute" for api "/api/auth/login", the request will be sent to:
https://xxxxxx.execute-api.ap-southeast-2.amazonaws.com/api/auth/login
and it return "403" {"message":"Forbidden"}

If the request is sent to https://xxxxxx.execute-api.ap-southeast-2.amazonaws.com/dev/api/auth/login, it works.

If I change the Blueprint "url_prefix="/api/auth" to "url_prefix="/dev/api/auth", it still doesn't work since now the correct endpoint should be https://xxxxxx.execute-api.ap-southeast-2.amazonaws.com/dev/dev/api/auth/login.

It looks like when sls-flask generate the swagger, it ignores the stage.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions