Django Rest API жалуется на версию swagger

Мы используем DJango rest framework для создания api. Мы добавили страницу swagger, но она жалуется на версию swagger.

Unable to render this definition

The provided definition does not specify a valid version field.

Please indicate a valid Swagger or OpenAPI version field. Supported version fields are swagger: "2.0" and those that match openapi: 3.0.n (for example, openapi: 3.0.0).

Я следовал документации https://www.django-rest-framework.org/topics/documenting-your-api/#a-minimal-example-with-swagger-ui

Ниже находятся файлы.

urls.py

from django.urls import path
urlpatterns = [
    ...
    ...
    path("openapi", get_schema_view(
            title="My api",
            description="API for me",
            version="1.0.0"
        ), name="openapi-schema"),
    path('swagger-ui/', TemplateView.as_view(
        template_name='swagger-ui.html',
        extra_context={'schema_url':'openapi-schema'}
    ), name='swagger-ui')
]

templates/swagger-ui.html

<!DOCTYPE html>
<html>
  <head>
    <title>Swagger</title>
    <meta charset="utf-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" type="text/css" href="//unpkg.com/swagger-ui-dist@3/swagger-ui.css" />
  </head>
  <body>
    <div id="swagger-ui"></div>
    <script src="//unpkg.com/swagger-ui-dist@3/swagger-ui-bundle.js"></script>
    <script>
    const ui = SwaggerUIBundle({
        url: "{% url schema_url %}",
        dom_id: '#swagger-ui',
        presets: [
          SwaggerUIBundle.presets.apis,
          SwaggerUIBundle.SwaggerUIStandalonePreset
        ],
        layout: "BaseLayout",
        requestInterceptor: (request) => {
          request.headers['X-CSRFToken'] = "{{ csrf_token }}"
          return request;
        }
      })
    </script>
  </body>
</html>

Я думаю, что он жалуется на version: 1.0.0, упомянутый в openapi представлении схемы. Но нужно убедиться, что что-то другое не вызывает эту проблему.

Вернуться на верх