Маршрутизация
Теперь нужно зарегистрировать маршруты ко всем созданным нами представлениям. Для этого перейдём в файл url.py
в нашем
проекте и в наших приложениях:
from django.conf import settings
from django.contrib import admin
from django.urls import path, include, re_path
from django.views.static import serve
from drf_spectacular.views import SpectacularAPIView, SpectacularSwaggerView
urlpatterns = [
path("admin/", admin.site.urls),
path("oidc/", include("apps.oidc.urls")),
path("api/survey/", include("apps.survey.urls")),
path("api/schema/", SpectacularAPIView.as_view(), name="schema"),
path("api/docs/", SpectacularSwaggerView.as_view(url_name="schema"), name="docs"),
re_path(r"^static/(?P<path>.*)$", serve, {"document_root": settings.STATIC_ROOT}),
]
Здесь укажем маршрут к админ-панели, к роутеру авторизации и опроса, а также укажем маршрут для Swagger документации и статических файлов.
from django.urls import path
from dj_rest_auth.jwt_auth import get_refresh_view
from apps.oidc.views import ItmoIdLogin, ItmoIdAuth, ItmoIdAuthUrl, ItmoIdProfileGroupView
urlpatterns = [
path("token/refresh/", get_refresh_view().as_view(), name="token_refresh"),
path("auth/url/", ItmoIdAuthUrl.as_view(), name="itmo_id_auth_url"),
path("auth/", ItmoIdAuth.as_view(), name="itmo_id_auth"),
path("login/", ItmoIdLogin.as_view(), name="itmo_id_login"),
path("group/", ItmoIdProfileGroupView.as_view(), name="itmo_id_group"),
]
Здесь укажем маршрут для обновления JWT токенов (из библиотеки dj_rest_auth
) и для всех созданных нами представлений.
from django.urls import path
from .views import SurveyQuestionList, SurveyCheckUserView, CreateSurveyAnswersView
urlpatterns = [
path("questions/", SurveyQuestionList.as_view(), name="surveyquestion-list"),
path("answers/", CreateSurveyAnswersView.as_view(), name="surveyanswers-create"),
path("user/check/", SurveyCheckUserView.as_view(), name="surveyuser-check"),
]
Здесь укажем маршрут для всех созданных нами представлений.