Drf_yasg.generators: компонент path базового URL api http://localhost:8080/ игнорируется; вместо него используйте FORCE_SCRIPT_NAME
Я использую swagger (drf_yasg.generators) с Django и получаю следующее сообщение об ошибке
Сообщение об ошибке
drf_yasg.generators: компонент пути базового URL api http://localhost:8080/ игнорируется; вместо него используйте FORCE_SCRIPT_NAME
.
Вот это развязность
class SchemaGenerator(OpenAPISchemaGenerator):
def get_schema(self, request=None, public=False):
schema = super(SchemaGenerator, self).get_schema(request, public)
schema.basePath = os.path.join(schema.basePath, "")
return schema
if env.bool("DJANGO_DEBUG"):
schema_view = get_schema_view(
openapi.Info(
title="API",
default_version="v1",
description="API endpoints",
),
url="http://localhost:8080/",
public=True,
permission_classes=(permissions.AllowAny,),
urlconf="config.urls",
generator_class=SchemaGenerator,
)
Здесь URL
urlpatterns = [
path(settings.ADMIN_URL, admin.site.urls),
path("api/", schema_view.with_ui("swagger", cache_timeout=0), name="swagger"),
path("algo1/", include("core_functions.algo1.urls")),
]
Может кто-нибудь помочь с ошибкой?
Похоже, что вы используете неправильную конфигурацию url в schema_view.
Пожалуйста, попробуйте использовать обычную конфигурацию Django url, удалив настройку поля url, как показано ниже:
from django.urls import re_path
from drf_yasg import openapi
from drf_yasg.views import get_schema_view
from rest_framework import permissions
schema_view = get_schema_view(
openapi.Info(
title='API',
default_version='v1',
description='API endpoints',
terms_of_service='',
contact=openapi.Contact(email='your@email.here'),
license=openapi.License(name="[Add License Name Here]"),
),
public=True,
permission_classes=(permissions.AllowAny,),
)
swagger_urlpatterns = (
re_path(r'^swagger(?P<format>\.json|\.yaml)$', schema_view.without_ui(cache_timeout=0), name='schema-json'),
re_path(r'^swagger/$', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
re_path(r'^redoc/$', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
)
и затем добавьте следующее в конце вашего urls.py:
# ...
urlpatterns += swagger_urlpatterns
Я также предлагаю избегать создания пользовательских generator_class в schema_view, если это не является настоятельной необходимостью