swagger UI and redoc inerfaces are now functional

schema.yml added for convenience. Its creation should be part of the CI
workflow if the API changes.
This commit is contained in:
YNorbert Klamann 2024-11-25 13:14:07 +00:00
parent b0714280bc
commit 0da8b928d6
3 changed files with 7469 additions and 6 deletions

View File

@ -359,11 +359,27 @@ MIDDLEWARE = [
]
SPECTACULAR_SETTINGS = {
"TITLE": "Paperless API",
"DESCRIPTION": "Generated with drf-spectacular (unmodified) python manage.py spectacular --color --file schema.yml",
"VERSION": "5.0.0",
"SERVE_INCLUDE_SCHEMA": False,
# OTHER SETTINGS
}# Optional to enable compression
"DESCRIPTION": """
WARNING: Not yet complete due to errors in the processing of the API Information
""",
"VERSION": "6.0.0",
"SERVE_INCLUDE_SCHEMA": True,
"SERVER_PUBLIC": True,
"COMPONENT_SPLIT_REQUEST": True,
# swagger ui
"SWAGGER_UI_SETTINGS": {
"deepLinking": True,
"persistAuthorization": True,
"displayOperationId": True,
},
# available SwaggerUI versions: https://github.com/swagger-api/swagger-ui/releases
"SWAGGER_UI_DIST": "https://cdn.jsdelivr.net/npm/swagger-ui-dist@latest", # default
# redoc
"REDOC_UI_SETTINGS": {},
"REDOC_DIST": "https://cdn.jsdelivr.net/npm/redoc@latest",
}
# Optional to enable compression
if __get_boolean("PAPERLESS_ENABLE_COMPRESSION", "yes"): # pragma: no cover
MIDDLEWARE.insert(0, "compression_middleware.middleware.CompressionMiddleware")

View File

@ -15,6 +15,9 @@ from django.views.decorators.csrf import csrf_exempt
from django.views.decorators.csrf import ensure_csrf_cookie
from django.views.generic import RedirectView
from django.views.static import serve
from drf_spectacular.views import SpectacularAPIView
from drf_spectacular.views import SpectacularRedocView
from drf_spectacular.views import SpectacularSwaggerView
from rest_framework.authtoken import views
from rest_framework.routers import DefaultRouter
@ -316,6 +319,12 @@ urlpatterns = [
],
),
),
# drf spectacular
path("api/schema/", SpectacularAPIView.as_view(), name="schema"),
# Optional UI:
path("api/schema/swagger-ui/", SpectacularSwaggerView.as_view(url_name="schema"), name="swagger-ui"),
path("api/schema/redoc/", SpectacularRedocView.as_view(url_name="schema"), name="redoc"),
# Root of the Frontend
re_path(
r".*",
@ -324,7 +333,6 @@ urlpatterns = [
),
]
websocket_urlpatterns = [
path(settings.BASE_URL.lstrip("/") + "ws/status/", StatusConsumer.as_asgi()),
]

7439
src/schema.yml Normal file

File diff suppressed because it is too large Load Diff