|
10 | 10 | from django.conf.urls import include |
11 | 11 | from django.contrib import admin |
12 | 12 | from django.contrib.auth import views as auth_views |
13 | | -from django.contrib.auth.decorators import login_required |
14 | 13 | from django.template.loader import render_to_string |
15 | 14 | from django.urls import path |
16 | 15 | from django.views.defaults import page_not_found |
17 | 16 | from django.views.generic import RedirectView |
18 | 17 | from django.views.generic import TemplateView |
19 | 18 |
|
| 19 | +from drf_yasg import openapi |
| 20 | +from drf_yasg.views import get_schema_view |
20 | 21 | from notifications.views import mark_all_as_read |
21 | | -from rest_framework.documentation import include_docs_urls |
22 | 22 | from rest_framework.routers import DefaultRouter |
23 | 23 |
|
24 | 24 | from component_catalog.api import ComponentViewSet |
|
167 | 167 | path("purldb/", include(("purldb.urls", "purldb"))), |
168 | 168 | ] |
169 | 169 |
|
170 | | -api_docs_urls = include_docs_urls( |
171 | | - title="DejaCode REST API", |
172 | | - public=False, |
173 | | - description=render_to_string( |
174 | | - "rest_framework/docs/description.html", |
175 | | - context={"site_url": settings.SITE_URL.rstrip("/")}, |
| 170 | +api_docs_view = get_schema_view( |
| 171 | + openapi.Info( |
| 172 | + title="DejaCode REST API", |
| 173 | + default_version="v2", |
| 174 | + description=render_to_string( |
| 175 | + "rest_framework/docs/description.html", |
| 176 | + context={"site_url": settings.SITE_URL.rstrip("/")}, |
| 177 | + ), |
176 | 178 | ), |
| 179 | + public=False, |
177 | 180 | ) |
178 | 181 |
|
179 | | -# Force login_required on all API documentation URLs. |
180 | | -for doc_url in api_docs_urls[0]: |
181 | | - doc_url.callback = login_required(doc_url.callback) |
| 182 | +# TODO: Force login_required on all API documentation URLs. |
| 183 | +# for doc_url in api_docs_urls[0]: |
| 184 | +# doc_url.callback = login_required(doc_url.callback) |
| 185 | +api_docs_patterns = [ |
| 186 | + path("", api_docs_view.with_ui("redoc", cache_timeout=0), name="docs-index"), |
| 187 | +] |
182 | 188 |
|
183 | 189 | urlpatterns += [ |
184 | 190 | path("api/v2/", include((api_router.urls, "api_v2"))), |
185 | | - path("api/v2/docs/", api_docs_urls), |
| 191 | + path("api/v2/docs/", include((api_docs_patterns, "api-docs"))), |
186 | 192 | ] |
187 | 193 |
|
188 | 194 | if settings.ENABLE_SELF_REGISTRATION: |
|
0 commit comments