from rest_framework import routers from comite_api.settings import DEBUG from core import views from rest_framework_simplejwt import views as jwt_views router = routers.DefaultRouter() router.register("people", views.PersonViewSet) router.register("families", views.FamilyViewSet) router.register("donations", views.DonationViewSet) urlpatterns = [ path("api/token/", jwt_views.TokenObtainPairView.as_view(), name="token_obtain_pair"), path("api/token/refresh/", jwt_views.TokenRefreshView.as_view(), name="token_refresh"), path("api/", include(router.urls)), path("api/admin/", admin.site.urls), ] if DEBUG: urlpatterns += [ path("api/docs/schema/", SpectacularAPIView.as_view(), name="schema"), path( "api/docs/schema/swagger-ui/", SpectacularSwaggerView.as_view(url_name="schema"), name="swagger-ui", ), ]
router.register("stages/dummy", DummyStageViewSet) router.register("policies/dummy", DummyPolicyViewSet) urlpatterns = ([ path("", APIBrowserView.as_view(), name="schema-browser"), ] + router.urls + [ path( "admin/metrics/", AdministrationMetricsViewSet.as_view(), name="admin_metrics", ), path("admin/version/", VersionView.as_view(), name="admin_version"), path("admin/workers/", WorkerView.as_view(), name="admin_workers"), path("admin/system/", SystemView.as_view(), name="admin_system"), path("root/config/", ConfigView.as_view(), name="config"), path( "flows/executor/<slug:flow_slug>/", FlowExecutorView.as_view(), name="flow-executor", ), path( "flows/inspector/<slug:flow_slug>/", FlowInspectorView.as_view(), name="flow-inspector", ), path("schema/", cache_page(86400)(SpectacularAPIView.as_view()), name="schema"), ])
1. Add an import: from my_app import views 2. Add a URL to urlpatterns: path('', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin from django.urls import include, path from drf_spectacular.views import SpectacularAPIView, SpectacularSwaggerView import thenewboston_node.accounts.urls import thenewboston_node.web.urls API_PREFIX = 'api/' urlpatterns = [ path('admin/', admin.site.urls), path('', include(thenewboston_node.web.urls)), # local apps path(API_PREFIX + 'v1/', include(thenewboston_node.accounts.urls)), path(API_PREFIX + 'schema/', SpectacularAPIView.as_view(), name='schema'), path(API_PREFIX + 'doc/', SpectacularSwaggerView.as_view(url_name='schema'), name='swagger'), ]
from django.conf import settings from django.urls import path, include urlpatterns = [ path('records/', include('apps.records.urls')), path('reports/', include('apps.reports.urls')), ] if settings.DEBUG: from drf_spectacular.views import SpectacularAPIView, SpectacularRedocView, SpectacularSwaggerView urlpatterns += [ path('docs/', SpectacularAPIView.as_view(), name='schema'), path('docs/swagger/', SpectacularSwaggerView.as_view(url_name='schema'), name='swagger'), path('docs/redoc/', SpectacularRedocView.as_view(url_name='schema'), name='redoc'), ]
# Django from django.contrib.auth.decorators import login_required from django.urls import path from drf_spectacular.views import SpectacularAPIView, SpectacularRedocView # Project from .views_qc import QCUploadView, QCDownloadView from .views_wsn import CreateView, IridiumView, MeshliumView from .views_wsn import QueryPostgreSQL, QueryClickHouse from .views_wsn import UploadEddyproView app_name = 'api' urlpatterns = [ # wsn: import data path('api/create/', CreateView.as_view()), path('api/upload/eddypro/', UploadEddyproView.as_view()), path('api/iridium/', IridiumView.as_view()), path('getpost_frame_parser.php', MeshliumView.as_view()), # wsn: query path('api/query/postgresql/', QueryPostgreSQL.as_view()), path('api/query/clickhouse/', QueryClickHouse.as_view()), # Quality Control path('api/qc/upload/', QCUploadView.as_view(), name='qc-upload'), path('api/qc/download/<name>/', QCDownloadView.as_view(), name='qc-download'), # Schema & docs path('api/schema/', login_required(SpectacularAPIView.as_view()), name='schema'), path('api/', login_required(SpectacularRedocView.as_view(url_name='api:schema')), name='redoc'), ]
url(r'^%shistory/(?P<cid>\d+)/(?P<oid>\d+)$' % get_system_setting('url_prefix'), views.action_history, name='action_history'), url(r'^%s' % get_system_setting('url_prefix'), include(ur)), url(r'^%sapi/v2/api-token-auth/' % get_system_setting('url_prefix'), tokenviews.obtain_auth_token), # drf-yasg = OpenAPI2 url(r'^%sapi/v2/doc/' % get_system_setting('url_prefix'), schema_view.with_ui('swagger', cache_timeout=0), name='api_v2_schema'), # drf-spectacular = OpenAPI3 url(r'^%sapi/v2/oa3/schema/' % get_system_setting('url_prefix'), SpectacularAPIView.as_view(), name='schema_oa3'), url(r'^%sapi/v2/oa3/swagger-ui/' % get_system_setting('url_prefix'), SpectacularSwaggerView.as_view(url=get_system_setting('url_prefix') + '/api/v2/oa3/schema/?format=json'), name='swagger-ui_oa3'), url(r'^robots.txt', lambda x: HttpResponse("User-Agent: *\nDisallow: /", content_type="text/plain"), name="robots_file"), url(r'^manage_files/(?P<oid>\d+)/(?P<obj_type>\w+)$', views.manage_files, name='manage_files'), ] urlpatterns += survey_urls
import pytest import yaml from django.conf.urls import url from rest_framework.test import APIClient from drf_spectacular.validation import validate_schema from drf_spectacular.views import SpectacularAPIView urlpatterns = [ url(r'^api/schema$', SpectacularAPIView.as_view(), name='schema') ] @pytest.mark.urls(__name__) def test_spectacular_view(no_warnings): response = APIClient().get('/api/schema') assert response.status_code == 200 assert response.content.startswith(b'openapi: 3.0.3\n') assert response.accepted_media_type == 'application/vnd.oai.openapi' schema = yaml.load(response.content, Loader=yaml.SafeLoader) validate_schema(schema)
) # noinspection PyUnresolvedReferences from hacktheback.rest.openapi import JSONWebTokenAuthenticationScheme # URL patterns for hacker APIs hacker_urlpatterns = [ path("", include("hacktheback.rest.forms.hacker_urls")), ] # URL patterns for admin APIs admin_urlpatterns = [ path("account/", include("hacktheback.rest.account.admin_urls")), path("messenger/", include("hacktheback.rest.messenger.admin_urls")), path("", include("hacktheback.rest.forms.admin_urls")), ] urlpatterns = [ path("account/", include("hacktheback.rest.account.urls")), path("", include(hacker_urlpatterns)), path("admin/", include(admin_urlpatterns)), path("schema", SpectacularAPIView.as_view(), name="schema"), path("schema.json", SpectacularJSONAPIView.as_view(), name="schema-json"), path("schema.yaml", SpectacularYAMLAPIView.as_view(), name="schema-yaml"), path( "swagger", SpectacularSwaggerView.as_view(url_name="schema-yaml"), name="swagger", ), ]
re_path('', include('training_platform.urls', )), re_path('', include('users.urls', )), ] # sub_urlpatterns += [ # # YOUR PATTERNS # path('api/v1/schema/', SpectacularAPIView.as_view(api_version='v1',), name='schema'), # # Optional UI: # path('api/v1/schema/swagger-ui/', SpectacularSwaggerView.as_view(url_name='schema'), name='swagger-ui'), # path('api/v1/schema/redoc/', SpectacularRedocView.as_view(url_name='schema'), name='redoc'), # # path('__debug__/', include(debug_toolbar.urls)), # ] sub_urlpatterns_api_v1 += [ # YOUR PATTERNS path('schema/', SpectacularAPIView.as_view(api_version='v1',), name='schema'), # Optional UI: path('schema/swagger-ui/', SpectacularSwaggerView.as_view(url_name='schema'), name='swagger-ui'), path('schema/redoc/', SpectacularRedocView.as_view(url_name='schema'), name='redoc'), # path('__debug__/', include(debug_toolbar.urls)), ] foo = [] urlpatterns = [ re_path(r'^api/v1/', include((sub_urlpatterns_api_v1, 'v1'), namespace='v1')), re_path(r'^api/v2/', include((sub_urlpatterns_api_v1, 'v2'), namespace='v2')), path('__debug__/', include(debug_toolbar.urls)), ]
include(("variables.urls", "variables"), namespace="variables")), url(r"^admin/", admin.site.urls), path("plots/", include(("plots.urls", "plots"), namespace="plots")), path( "activities/", include(("activities.urls", "activities"), namespace="activities"), ), # SWAGGER PATHS path( "", SpectacularSwaggerView.as_view(url_name="schema"), name="swagger-ui", ), path( "schema/", SpectacularAPIView.as_view(), name="schema", ), path( "api/", SpectacularSwaggerView.as_view(url_name="api-schema"), name="swagger-ui", ), path("api/schema/", SpectacularAPIView.as_view(urlconf="api.urls"), name="api-schema"), ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) # Host the static from uWSGI if settings.IS_WSGI: print("uWSGI mode, adding static file patterns")
admin.autodiscover() router = routers.DefaultRouter() router.register(r"sessions", SessionViewSet) router.register(r"speakers", SpeakerViewSet) router.register(r"events", EventDetailViewSet) urlpatterns = [ url(r"^api/", include(router.urls)), url(r"^api/schema/swagger-ui/", SpectacularSwaggerView.as_view(url_name='schema'), name='swagger-ui'), url(r"^api/schema/redoc/", SpectacularRedocView.as_view(url_name='schema'), name='redoc'), url(r"^api/schema/", SpectacularAPIView.as_view(), name='schema'), url(r"^api-auth/", include("rest_framework.urls")), url(r"^api-token-auth/", views.obtain_auth_token), url(r"^admin/", admin.site.urls), url(r"^admin/send_email/$", SendEmailView.as_view(), name="send_email"), url(r"^sitemap\.xml$", sitemap_view, {"sitemaps": { "cmspages": CMSSitemap }}), url(r"^select2/", include("django_select2.urls")), url(r"", include("attendee.urls")), url(r"^accounts/", include("devday.registration_urls")), url(r"^upload/", include("django_file_form.urls")), url(r"^session/", include("talk.urls")), url(r"^committee/", include("talk.urls_committee")), url(r"^twitterwall/", TwitterwallView.as_view(), name="twitterwall"),
urlpatterns = [ # Django Rest Framework API v2 url(r'^%sapi/v2/' % get_system_setting('url_prefix'), include(v2_api.urls)), # action history url(r'^%shistory/(?P<cid>\d+)/(?P<oid>\d+)$' % get_system_setting('url_prefix'), views.action_history, name='action_history'), url(r'^%s' % get_system_setting('url_prefix'), include(ur)), url(r'^%sapi/v2/api-token-auth/' % get_system_setting('url_prefix'), tokenviews.obtain_auth_token, name='api-token-auth'), url(r'^%sapi/v2/user_profile/' % get_system_setting('url_prefix'), UserProfileView.as_view(), name='user_profile'), # drf-yasg = OpenAPI2 url(r'^%sapi/v2/doc/' % get_system_setting('url_prefix'), schema_view.with_ui('swagger', cache_timeout=0), name='api_v2_schema'), # drf-spectacular = OpenAPI3 url(r'^%sapi/v2/oa3/schema/' % get_system_setting('url_prefix'), SpectacularAPIView.as_view(), name='schema_oa3'), url(r'^%sapi/v2/oa3/swagger-ui/' % get_system_setting('url_prefix'), SpectacularSwaggerView.as_view(url=get_system_setting('url_prefix') + '/api/v2/oa3/schema/?format=json'), name='swagger-ui_oa3'), url(r'^robots.txt', lambda x: HttpResponse("User-Agent: *\nDisallow: /", content_type="text/plain"), name="robots_file"), url(r'^manage_files/(?P<oid>\d+)/(?P<obj_type>\w+)$', views.manage_files, name='manage_files'), ] urlpatterns += survey_urls if hasattr(settings, 'DJANGO_METRICS_ENABLED'): if settings.DJANGO_METRICS_ENABLED: urlpatterns += [url(r'^%sdjango_metrics/' % get_system_setting('url_prefix'), include('django_prometheus.urls'))] if hasattr(settings, 'SAML2_ENABLED'): if settings.SAML2_ENABLED:
router.register('server', views.ServerViewSet, basename='server') router.register('issues', views.IssueViewSet) router.register('comments', views.CommentViewSet) router.register('restrictions', RestrictionsViewSet, basename='restrictions') router.register('cloudstorages', views.CloudStorageViewSet) urlpatterns = [ # Entry point for a client path( '', RedirectView.as_view(url=settings.UI_URL, permanent=True, query_string=True)), # documentation for API path('api/schema/', SpectacularAPIView.as_view(api_version='2.0'), name='schema'), path('api/swagger/', SpectacularSwaggerView.as_view(url_name='schema'), name='swagger'), path('api/docs/', SpectacularRedocView.as_view(url_name='schema'), name='redoc'), # entry point for API path('api/', include('cvat.apps.iam.urls')), path('api/', include('cvat.apps.organizations.urls')), path('api/', include(router.urls)), ]
SpectacularAPIView, SpectacularRedocView, SpectacularSwaggerView, ) from hours.api import APIRouter from hours.views import invalidate_hauki_auth_signature admin.autodiscover() router = APIRouter() urlpatterns = [ path("admin/", admin.site.urls), path("v1/", include(router.urls)), path("openapi/", SpectacularAPIView.as_view(), name="schema"), path("api_docs/", SpectacularRedocView.as_view(url_name="schema"), name="redoc"), path( "api_docs/swagger/", SpectacularSwaggerView.as_view(url_name="schema"), name="swagger-ui", ), path( "invalidate_signature/", invalidate_hauki_auth_signature, name="invalidate_hauki_auth_signature", ), path("", include("rest_framework.urls", namespace="rest_framework")), path("", RedirectView.as_view(url="v1/")),
permanent=False)), re_path(r'^v1/', include((router.urls, 'emgapi_v1'), namespace='emgapi_v1')), path(r'v1/utils/token/obtain', obtain_jwt_token, name='obtain_jwt_token_v1'), path(r'v1/utils/token/verify', verify_jwt_token, name='verify_jwt_token_v1'), ] urlpatterns += mongo_urlpatterns urlpatterns += emgapi_urlpatterns urlpatterns += [ path(r'schema/', SpectacularAPIView.as_view(api_version='emgapi_v1'), name='schema'), path(r'docs/', SpectacularSwaggerView.as_view(url_name='schema', url=settings.EMG_URL + '/schema'), name='swagger-ui'), ] # admin if settings.ADMIN: urlpatterns += [ path('grappelli/', include('grappelli.urls')), path('admin/', admin.site.urls), ] if settings.DEBUG:
path("admin/decos-api-search/", DecosAPISearch.as_view(), name="decos_api_search"), path("admin/bwv-structure", BWVTablesView.as_view(), name="bwv-structure"), path("admin/", admin.site.urls), # Algorithm sandbox environment path("algorithm/", AlgorithmListView.as_view(), name="algorithm-list"), path("algorithm/<int:pk>", AlgorithmView.as_view(), name="algorithm-detail"), # Health check urls path("looplijsten/health", health_default, name="health-default"), path("looplijsten/health_bwv", health_bwv, name="health-bwv"), path("health/", include("health_check.urls")), # The API for requesting data path("api/v1/", include((v1_urls, "app"), namespace="v1")), path("api/v2/", include((v1_urls, "app"), namespace="v2")), # # Swagger/OpenAPI documentation path( "api/v1/schema/", SpectacularAPIView.as_view(api_version="v1"), name="schema-v1" ), path( "api/v1/swagger/", SpectacularSwaggerView.as_view(url_name="schema-v1"), name="swagger-ui", ), path( "api/v2/schema/", SpectacularAPIView.as_view(api_version="v2"), name="schema-v2" ), path( "api/v2/swagger/", SpectacularSwaggerView.as_view(url_name="schema-v2"), name="swagger-ui", ), ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
basename='project-services') # Routes for requirements router.register(r'requirements', views.RequirementViewSet) # Routes for resources router.register(r'resources', views.ResourceViewSet) # Routes for services router.register(r'services', views.ServiceViewSet) services_router = routers.NestedSimpleRouter(router, r'services', lookup='service') services_router.register(r'requirements', views.ServiceRequirementsViewSet, basename='service-requirements') # Combine the URLs from all the routers to make the URL patterns urlpatterns = [ path('me/', views.CurrentUserView.as_view(), name='current-user'), path('join/', views.ProjectJoinView.as_view(), name='project-join'), path('', include(router.urls)), path('', include(consortia_router.urls)), path('', include(projects_router.urls)), path('', include(services_router.urls)), path('schema.json', SpectacularAPIView.as_view(), name='openapi-schema'), path('doc/', SpectacularSwaggerView.as_view(url_name='openapi-schema'), name='openapi-docs'), ]
from drf_spectacular.types import OpenApiTypes from drf_spectacular.utils import extend_schema from drf_spectacular.validation import validate_schema from drf_spectacular.views import SpectacularAPIView @extend_schema(responses=OpenApiTypes.FLOAT) @api_view(http_method_names=['GET']) def pi(request): return Response(3.1415) urlpatterns_v1 = [url(r'^api/v1/pi', pi)] urlpatterns_v1.append( url(r'^api/v1/schema$', SpectacularAPIView.as_view(urlconf=urlpatterns_v1))) urlpatterns_v2 = [ url(r'^api/v2/pi', pi), url(r'^api/v2/pi-fast', pi), ] urlpatterns_v2.append( url(r'^api/v2/schema$', SpectacularAPIView.as_view(urlconf=urlpatterns_v2)), ) urlpatterns = urlpatterns_v1 + urlpatterns_v2 @pytest.mark.urls(__name__) def test_spectacular_view(no_warnings): response = APIClient().get('/api/v1/schema')
def get_serializer_class(self): # make sure the mocked request possesses the correct path and # schema endpoint path does not leak in. assert self.request.path.startswith('/api/x/') # make schema dependent on request method if self.request.method == 'GET': return SimpleSerializer else: return AnotherSimpleSerializer router = routers.SimpleRouter() router.register('x', XViewset) urlpatterns = [ path('api/', include(router.urls)), path('api/schema-plain/', SpectacularAPIView.as_view()), path( 'api/schema-authenticated/', SpectacularAPIView.as_view( authentication_classes=[TokenAuthentication])), path( 'api/schema-authenticated-private/', SpectacularAPIView.as_view( authentication_classes=[TokenAuthentication], serve_public=False, )), path('api/schema-versioned/', SpectacularAPIView.as_view(versioning_class=AcceptHeaderVersioning)) ]
view = SpectacularAPIView( versioning_class=AcceptHeaderVersioning, ) factory = APIRequestFactory() request = factory.get('x', content_type='application/vnd.oai.openapi+json') request = view.initialize_request(request) else: request = None schema = generator.get_schema(request=request, public=True) assert_schema(schema, f'tests/test_versioning_accept_{version}.yml') urlpatterns_namespace = [ path('x/', NamespaceVersioningViewset.as_view({'get': 'list'})), path('schema/', SpectacularAPIView.as_view( versioning_class=NamespaceVersioning ), name='schema-nv-versioned'), path('schema/ui', SpectacularSwaggerView.as_view( versioning_class=NamespaceVersioning, url_name='schema-nv-versioned' )), ] urlpatterns_path = [ path('x/', PathVersioningViewset2.as_view({'get': 'list'})), path('schema/', SpectacularAPIView.as_view( versioning_class=URLPathVersioning ), name='schema-pv-versioned'), path('schema/ui', SpectacularSwaggerView.as_view( versioning_class=URLPathVersioning, url_name='schema-pv-versioned' )), ] urlpatterns_accept_header = [
) from drf_spectacular.views import ( SpectacularAPIView, SpectacularSwaggerView, ) from conf import settings from common.views.populate import PopulateAPIView from tgbot.views import populate as tgbot_populate urlpatterns = [ # Swagger path("swagger/schema/", SpectacularAPIView.as_view(), name="schema"), path("swagger/", SpectacularSwaggerView.as_view(url_name="schema"), name="swagger-ui"), # Public path("api/auth/", include("auth.urls")), path("api/dms/", include("dms.urls")), path("api/lms/", include("lms.urls")), path("api/tgbot/", include("tgbot.urls")), # Internal path("admin/", admin.site.urls), path("better-populate/", PopulateAPIView.as_view()), path("populate/tgbot/", tgbot_populate), ]
from django.contrib import admin from django.urls import path, include from drf_spectacular.views import SpectacularAPIView, SpectacularSwaggerView urlpatterns = [ path('admin/', admin.site.urls), path('users/', include('apps.users.urls')), path('api_users/', include('apps.api_users.urls')), path("docs/schema/", SpectacularAPIView.as_view(), name="docs"), path("docs/", SpectacularSwaggerView.as_view(url_name="docs"), name="swagger-ui"), ]
urlpatterns = static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) +\ [ # admin panel path('admin/', admin.site.urls), # login into the API path('api/', include('rest_framework.urls')), # token authentication path('api-token-auth/', drf_views.obtain_auth_token), # API path('api/v2/', include('backend.api_v2.urls')), path( 'schema/', SpectacularAPIView.as_view( api_version="1.0.0"), name='schema'), path( 'schema/swagger-ui/', SpectacularSwaggerView().as_view( url_name='schema'), name='swagger-ui'), path( 'schema/redoc/', SpectacularRedocView.as_view( url_name='schema'), name='redoc'), # training artifacts path('files/', include('directory.urls')),
content_type="text/plain")), path( "sitemap.xml", sitemap, { "sitemaps": { "static": StaticViewSitemap, "dynamic": GenericSitemap({"queryset": Job.objects.all()}) } }, name="django.contrib.sitemaps.views.sitemap", ), path("api/", include("api.urls")), path("api/token/", TokenObtainPairView.as_view(), name="token_obtain_pair"), path("api/token/refresh/", TokenRefreshView.as_view(), name="token_refresh"), path("api/token/verify/", TokenVerifyView.as_view(), name="token_verify"), # Swagger UI for DRF. path("api/schema/", SpectacularAPIView.as_view(api_version="v3"), name="schema"), path( "api/docs/", SpectacularSwaggerView.as_view(template_name="swagger-ui.html", url_name="schema"), name="swagger-ui", ), ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
SpectacularAPIView, SpectacularRedocView, SpectacularSwaggerSplitView, SpectacularSwaggerView, ) @extend_schema(responses=OpenApiTypes.FLOAT) @api_view(http_method_names=['GET']) def pi(request): return Response(3.1415) urlpatterns_v1 = [path('api/v1/pi/', pi)] urlpatterns_v1.append( path('api/v1/schema/', SpectacularAPIView.as_view(urlconf=urlpatterns_v1))) urlpatterns_v2 = [ path('api/v2/pi/', pi), path('api/v2/pi-fast/', pi), path('api/v2/schema/swagger-ui/', SpectacularSwaggerView.as_view(), name='swagger'), path('api/v2/schema/swagger-ui-alt/', SpectacularSwaggerSplitView.as_view(), name='swagger-alt'), path('api/v2/schema/redoc/', SpectacularRedocView.as_view(), name='redoc'), ] urlpatterns_v2.append( path('api/v2/schema/', SpectacularAPIView.as_view(urlconf=urlpatterns_v2),
views.EventUpdateView.as_view(), name='eventupdate'), path('eventdelete/<int:pk>/', views.EventDeleteView.as_view(), name='eventdelete'), path('taglist/', views.TagListView.as_view(), name='taglist'), path('tagcreate/', views.TagCreateView.as_view(), name='tagcreate'), path('tagupdate/<int:pk>/', views.TagUpdateView.as_view(), name='tagupdate'), path('tagdelete/<int:pk>/', views.TagDeleteView.as_view(), name='tagdelete'), path('photos/', include(router.urls)), path('accounts/', include('accounts.urls')), 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'), # JWT authentication path('api/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'), path('api/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'), ]
Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin from django.urls import include, path, re_path from drf_spectacular.views import SpectacularAPIView, SpectacularSwaggerView from social_django.urls import extra from argus.auth.views import ObtainNewAuthToken from argus.dataporten import views as dataporten_views from argus.site.views import error psa_urls = [ # Overrides social_django's `complete` view re_path(fr"^complete/(?P<backend>[^/]+){extra}$", dataporten_views.login_wrapper, name="complete"), path("", include("social_django.urls", namespace="social")), ] urlpatterns = [ # path(".error/", error), # Only needed when testing error pages and error behavior path("admin/", admin.site.urls), path("oidc/", include(psa_urls)), path("api/schema/", SpectacularAPIView.as_view(api_version="v1"), name="schema-v1-old"), path("api/schema/swagger-ui/", SpectacularSwaggerView.as_view(url_name="schema-v1-old"), name="swagger-ui-v1-old"), path("api/v1/", include(("argus.site.api_v1_urls", "api"), namespace="v1")), # path("api/v2/", include(("argus.site.api_v2_urls", "api"), namespace="v2")), ]
from django.urls import include, path from drf_spectacular.views import SpectacularAPIView, SpectacularSwaggerView from argus.auth.views import ObtainNewAuthToken openapi_urls = [ path("", SpectacularAPIView.as_view(api_version="v2"), name="schema"), path("swagger-ui/", SpectacularSwaggerView.as_view(url_name="v2:openapi:schema"), name="swagger-ui"), ] tokenauth_urls = [ path("", ObtainNewAuthToken.as_view(), name="api-token-auth"), ] urlpatterns = [ path("schema/", include((openapi_urls, "openapi"))), path("auth/", include("argus.auth.urls")), path("incidents/", include("argus.incident.urls")), path("notificationprofiles/", include("argus.notificationprofile.urls")), path("token-auth/", include((tokenauth_urls, "auth"))), ]
from django.contrib import admin from django.urls import path, re_path, include from django.conf import settings from django.conf.urls.static import static from drf_spectacular.views import SpectacularAPIView, SpectacularRedocView, SpectacularSwaggerView admin.site.site_header = "Restaurant POS Admin panel" admin.site.site_title = "Restaurant POS" admin.site.index_title = "Welcome to the control panel Restaurant POS" urlpatterns = [ path('main/admin/', admin.site.urls, name='admin'), path('main/api/v1/api/schema', SpectacularAPIView.as_view(), name='schema'), path('main/api/v1/', SpectacularSwaggerView.as_view(url_name='schema'), name='swagger-ui'), path('main/api/v1/redoc/', SpectacularRedocView.as_view(url_name='schema'), name='redoc'), path('main/api/v2/', include('user.urls')), path('main/api/v3/', include('restaurant.urls')), ] urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)