""" from django.contrib import admin from django.urls import path from drf_spectacular.views import SpectacularAPIView, SpectacularSwaggerView, SpectacularRedocView from rest_framework.routers import DefaultRouter from backend.views import UserAccountViewSet, UpperCategoryViewset, InnerCategoryViewset router = DefaultRouter() router.register(r'users-accounts', UserAccountViewSet, basename='user-accounts') router.register(r'upper-categories', UpperCategoryViewset, basename='upper-categories') router.register(r'inner-categories', InnerCategoryViewset, basename='inner-categories') urlpatterns = [ path('admin/', admin.site.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'), ] + router.urls
from node.urls import router as node_router from users.urls import router as user_router urlpatterns = [ url(r'^', include([ url(r'^', include((router.urls, 'substrapp'))), url(r'^', include((node_router.urls, 'node'))), url(r'^', include((user_router.urls, 'user'))), # for secure jwt authent url(r'^api-token-auth/', obtain_auth_token) # for expiry token authent ])), ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) \ + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) \ + [ # OpenAPI spec and UI path("schema/", SpectacularAPIView.as_view(), 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", ), ] # only allow session authentication is the browsable API is enabled if BrowsableAPIRenderer in api_settings.DEFAULT_RENDERER_CLASSES: urlpatterns += [url(r'^api-auth/', include('rest_framework.urls'))]
from django.urls import path from .views import PollViewSet, ChoiceList, CreateVote, UserCreate, LoginView from rest_framework.routers import DefaultRouter from rest_framework.documentation import include_docs_urls from drf_spectacular.views import SpectacularAPIView, SpectacularRedocView, SpectacularSwaggerView # schema_view = get_swagger_view(title='Polls API') router = DefaultRouter() router.register('polls', PollViewSet, basename='polls') urlpatterns = [ # path("polls/", PollList.as_view(), name="polls_list"), # path("polls/<int:pk>/", PollDetail.as_view(), name="polls_detail"), path("polls/<int:pk>/choices/", ChoiceList.as_view(), name="choice_list"), path("polls/<int:pk>/choices/<int:choice_pk>/vote/", CreateVote.as_view(), name="create_vote"), path("users/", UserCreate.as_view(), name="user_create"), path("login/", LoginView.as_view(), name="login"), path(r'docs/', include_docs_urls(title='Polls API')), path('api/', SpectacularAPIView.as_view(), name='schema'), # Optional UI: path('api/swagger/', SpectacularSwaggerView.as_view(url_name='schema'), name='swagger-ui'), path('api/redoc/', SpectacularRedocView.as_view(url_name='schema'), name='redoc'), ] urlpatterns += router.urls
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.conf import settings from django.contrib import admin from django.urls import include, path from drf_spectacular.views import SpectacularAPIView, SpectacularRedocView, SpectacularSwaggerView from rest_framework import routers urlpatterns = [ path("admin/", admin.site.urls), path("api-auth/", include("rest_framework.urls", namespace="rest_framework")), path("api/schema/", SpectacularAPIView.as_view(), name="schema"), 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"), ] router = routers.DefaultRouter() if "timeline" in settings.INSTALLED_APPS: from timeline import views router.register(r"timeline/sources", views.SourceViewSet) router.register(r"timeline/events", views.EventViewSet) if "track" in settings.INSTALLED_APPS: from track import views router.register(r"track/trackpoints", views.TrackpointViewSet) router.register(r"track/tracksegs", views.TracksegViewSet)
@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-ui'), path('api/v2/schema/redoc/', SpectacularRedocView.as_view(), name='redoc'), ] urlpatterns_v2.append( path('api/v2/schema/', SpectacularAPIView.as_view(urlconf=urlpatterns_v2), name='schema'), ) urlpatterns = urlpatterns_v1 + urlpatterns_v2 @pytest.mark.urls(__name__) def test_spectacular_view(no_warnings): response = APIClient().get('/api/v1/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'
) urlpatterns.append( url( r"^{api_root}docs/api.yaml".format(api_root=API_ROOT), SpectacularYAMLAPIView.as_view(authentication_classes=[], permission_classes=[]), name="schema-yaml", ) ) urlpatterns.append( url( r"^{api_root}docs/".format(api_root=API_ROOT), SpectacularRedocView.as_view( authentication_classes=[], permission_classes=[], url="/pulp/api/v3/docs/api.json?include_html=1", ), name="schema-redoc", ) ) schema_view = get_schema_view( title="Pulp API", permission_classes=[permissions.AllowAny], generator_class=PulpSchemaGenerator ) urlpatterns.append(url(r"^{api_root}$".format(api_root=API_ROOT), schema_view)) all_routers = [root_router] + vs_tree.register_with(root_router) for router in all_routers: urlpatterns.append(url(r"^{api_root}".format(api_root=API_ROOT), include(router.urls)))