def test_accept_header_versioning(no_warnings, viewset_cls, version, with_request): router = routers.SimpleRouter() router.register('x', viewset_cls, basename='x') generator = SchemaGenerator( patterns=[ path('', include((router.urls, 'x'))), ], api_version=version, ) if with_request: 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 = [ # 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:
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", ), ]
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'), ]
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'), ]
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
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.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')
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:
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)
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 path, include from drf_spectacular.views import SpectacularAPIView, SpectacularRedocView, SpectacularSwaggerView # For details about the include, see https://docs.djangoproject.com/en/3.1/topics/http/urls/#including-other-urlconfs # If it makes problems, either include the urls.py directly and rework the view pointers, or attempt solving this. urlpatterns = [ # YOUR PATTERNS path('api/schema/', SpectacularAPIView.as_view(), name='schema'), path('api/schema-json/', SpectacularAPIView(renderer_classes=drf_spectacular.renderers. OpenApiJsonRenderer).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'), # The rest path('admin/', admin.site.urls), path('', include('EthicAssessmentSoftware.urls')) ]
2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from drf_spectacular.views import SpectacularAPIView, SpectacularRedocView from drf_spectacular import renderers from django.contrib import admin from django.urls import path from .user.views import UserAPIView, RegisterAPIView, LoginAPIView, LogoutAPIView, LogoutAllAPIView from .github.views import FetchGithubRepos, GetGithubRepo, ListGithubRepos, ListGithubTokens, AddGithubToken, UpdateGithubRepo from .extensions import * urlpatterns = [ # Schema path('api/schema/', SpectacularAPIView().as_view( renderer_classes=[renderers.OpenApiJsonRenderer2]), name='schema'), path('api/schema/redoc/', SpectacularRedocView.as_view(url_name='schema'), name='redoc'), # Auth APIs path('api/auth/user/', UserAPIView.as_view(), name='user'), path('api/auth/register/', RegisterAPIView.as_view(), name='register'), path('api/auth/login/', LoginAPIView.as_view(), name='login'), path('api/auth/logout/', LogoutAPIView.as_view(), name='logout'), path('api/auth/logoutall/', LogoutAllAPIView.as_view(), name='logout-all'), # Github related APIs path('api/github/tokens/', AddGithubToken.as_view(), name='add-gh-token'), path('api/github/tokens/',
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")
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)), ]
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"),
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)
) # 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", ), ]
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'), ]
# 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'), ]
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)) ]
) 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), ]
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')),
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"), ]
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),
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)
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")), ]
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'), ]
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/")),
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"))), ]
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)), ]