示例#1
0
"""
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
示例#2
0
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'))]
示例#3
0
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
示例#4
0
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'
示例#6
0
)

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)))