feat(src/djinit/templates/config): replace drf_spectacular with drf_yasg for API schema generation
- New Features - Switched to drf_yasg and updated schema configuration. - Enhancements - Updated DEFAULT_SCHEMA_CLASS to rest_framework.schemas.coreapi.AutoSchema. - Refactored URL patterns to use drf_yasg schema views. - Bug Fixes - No bug fixes included.
This commit is contained in:
2 files changed
+13
-18
No files matched your search
@@ -25,7 +25,7 @@ THIRD_PARTY_APPS = [
|
|||||||
"rest_framework_simplejwt",
|
"rest_framework_simplejwt",
|
||||||
"rest_framework_simplejwt.token_blacklist",
|
"rest_framework_simplejwt.token_blacklist",
|
||||||
"corsheaders",
|
"corsheaders",
|
||||||
"drf_spectacular",
|
"drf_yasg",
|
||||||
"django_tailwind_cli", # @IF use_tailwind
|
"django_tailwind_cli", # @IF use_tailwind
|
||||||
"django_htmx", # @IF use_htmx
|
"django_htmx", # @IF use_htmx
|
||||||
]
|
]
|
||||||
@@ -138,21 +138,11 @@ REST_FRAMEWORK = {
|
|||||||
"rest_framework_simplejwt.authentication.JWTAuthentication",
|
"rest_framework_simplejwt.authentication.JWTAuthentication",
|
||||||
"rest_framework.authentication.SessionAuthentication",
|
"rest_framework.authentication.SessionAuthentication",
|
||||||
),
|
),
|
||||||
"DEFAULT_SCHEMA_CLASS": "drf_spectacular.openapi.AutoSchema",
|
"DEFAULT_SCHEMA_CLASS": "rest_framework.schemas.coreapi.AutoSchema",
|
||||||
"DEFAULT_PAGINATION_CLASS": "rest_framework.pagination.PageNumberPagination",
|
"DEFAULT_PAGINATION_CLASS": "rest_framework.pagination.PageNumberPagination",
|
||||||
"PAGE_SIZE": 20,
|
"PAGE_SIZE": 20,
|
||||||
}
|
}
|
||||||
|
|
||||||
# DRF Spectacular settings
|
|
||||||
SPECTACULAR_SETTINGS = {
|
|
||||||
"TITLE": "[[ project_name ]] API",
|
|
||||||
"DESCRIPTION": "API documentation for [[ project_name ]]",
|
|
||||||
"VERSION": "1.0.0",
|
|
||||||
"SERVE_INCLUDE_SCHEMA": False,
|
|
||||||
"COMPONENT_SPLIT_REQUEST": True,
|
|
||||||
"SCHEMA_PATH_PREFIX": "/api/",
|
|
||||||
}
|
|
||||||
|
|
||||||
# JWT Settings
|
# JWT Settings
|
||||||
SIMPLE_JWT = {
|
SIMPLE_JWT = {
|
||||||
"ACCESS_TOKEN_LIFETIME": timedelta(days=1),
|
"ACCESS_TOKEN_LIFETIME": timedelta(days=1),
|
||||||
|
|||||||
@@ -8,10 +8,8 @@ from django.urls import include
|
|||||||
# @ENDIF
|
# @ENDIF
|
||||||
# @IF include_api
|
# @IF include_api
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from drf_spectacular.views import (
|
from drf_yasg.views import get_schema_view
|
||||||
SpectacularAPIView,
|
from drf_yasg import openapi
|
||||||
SpectacularSwaggerView,
|
|
||||||
)
|
|
||||||
from rest_framework_simplejwt.views import (
|
from rest_framework_simplejwt.views import (
|
||||||
TokenObtainPairView,
|
TokenObtainPairView,
|
||||||
TokenRefreshView,
|
TokenRefreshView,
|
||||||
@@ -44,9 +42,16 @@ urlpatterns = [
|
|||||||
|
|
||||||
# Don't show schema in production
|
# Don't show schema in production
|
||||||
if settings.DEBUG:
|
if settings.DEBUG:
|
||||||
|
schema_view = get_schema_view(
|
||||||
|
openapi.Info(
|
||||||
|
title="[[ project_name ]] API",
|
||||||
|
default_version="v1",
|
||||||
|
),
|
||||||
|
public=True,
|
||||||
|
)
|
||||||
urlpatterns += [
|
urlpatterns += [
|
||||||
path("schema/", SpectacularAPIView.as_view(), name="schema"),
|
path("docs/", schema_view.with_ui("swagger", cache_timeout=0)),
|
||||||
path("docs/", SpectacularSwaggerView.as_view(url_name="schema")),
|
path("schema/", schema_view.with_ui("redoc", cache_timeout=0)),
|
||||||
]
|
]
|
||||||
# @ENDIF
|
# @ENDIF
|
||||||
# @ENDIF
|
# @ENDIF
|
||||||
|
|||||||
Reference in new issue
Block a user