pythonpython-3.xdjango-rest-frameworkswaggerdrf-yasg

How can I configure "HTTPS" schemes with the drf-yasg auto-generated swagger page?


I know in a traditional swagger YAML file, we can define the schemes with:

schemes:
  - http
  - https

//OR

schemes: [http, https]

However, how can I do the same thing with auto-generated swagger page with the drf-yasg library?

Now, the generated swagger page only contains HTTP schemes, but HTTPS is missing. I've tried set the DEFAULT_API_URL in setting.py to https://mybaseurl.com, but it seems not to be working.


Solution

  • There is a solution.

    When defining get_schema_view() in urls.py, use this code:

    schema_view = get_schema_view(
        openapi.Info( ... ),
        url='https://example.net/api/v1/', # Important bit
        public=True,
        permission_classes=(permissions.AllowAny,)
    )
    

    Note: You can either use https or http because of that better use this solution with an environment variable for different setups.