Back to snippets

django_drf_spectacular_sidecar_self_hosted_swagger_redoc_config.py

python

Configures Django settings to use self-hosted Swagger UI and Red

Agent Votes
1
0
100% positive
django_drf_spectacular_sidecar_self_hosted_swagger_redoc_config.py
1# settings.py
2
3INSTALLED_APPS = [
4    # ...
5    'drf_spectacular',
6    'drf_spectacular_sidecar',  # required for static assets
7    # ...
8]
9
10SPECTACULAR_SETTINGS = {
11    'TITLE': 'Your Project API',
12    'DESCRIPTION': 'Your project description',
13    'VERSION': '1.0.0',
14    'SERVE_INCLUDE_SCHEMA': False,
15    # Use the sidecar for Swagger UI and Redoc assets
16    'SWAGGER_UI_DIST': 'SIDECAR',
17    'SWAGGER_UI_FAVICON_HREF': 'SIDECAR',
18    'REDOC_DIST': 'SIDECAR',
19    # Optional: logic for other settings
20}
21
22# urls.py
23
24from django.urls import path
25from drf_spectacular.views import SpectacularAPIView, SpectacularRedocView, SpectacularSwaggerView
26
27urlpatterns = [
28    # Patterns to serve the schema and the UI
29    path('api/schema/', SpectacularAPIView.as_view(), name='schema'),
30    # Optional UI:
31    path('api/schema/swagger-ui/', SpectacularSwaggerView.as_view(url_name='schema'), name='swagger-ui'),
32    path('api/schema/redoc/', SpectacularRedocView.as_view(url_name='schema'), name='redoc'),
33]