|
@@ -4,12 +4,24 @@ from django.conf import settings
|
|
from django.conf.urls import include, url
|
|
from django.conf.urls import include, url
|
|
from django.contrib import admin
|
|
from django.contrib import admin
|
|
from django.views.static import serve
|
|
from django.views.static import serve
|
|
-from rest_framework_swagger.views import get_swagger_view
|
|
|
|
|
|
+from drf_yasg.views import get_schema_view
|
|
|
|
+from drf_yasg import openapi
|
|
|
|
|
|
from netbox.views import APIRootView, HomeView, SearchView
|
|
from netbox.views import APIRootView, HomeView, SearchView
|
|
from users.views import LoginView, LogoutView
|
|
from users.views import LoginView, LogoutView
|
|
|
|
|
|
-swagger_view = get_swagger_view(title='NetBox API')
|
|
|
|
|
|
+schema_view = get_schema_view(
|
|
|
|
+ openapi.Info(
|
|
|
|
+ title="NetBox API",
|
|
|
|
+ default_version='v2',
|
|
|
|
+ description="API to access NetBox",
|
|
|
|
+ terms_of_service="https://github.com/digitalocean/netbox",
|
|
|
|
+ contact=openapi.Contact(email="netbox@digitalocean.com"),
|
|
|
|
+ license=openapi.License(name="Apache v2 License"),
|
|
|
|
+ ),
|
|
|
|
+ validators=['flex', 'ssv'],
|
|
|
|
+ public=True,
|
|
|
|
+)
|
|
|
|
|
|
_patterns = [
|
|
_patterns = [
|
|
|
|
|
|
@@ -40,7 +52,9 @@ _patterns = [
|
|
url(r'^api/secrets/', include('secrets.api.urls')),
|
|
url(r'^api/secrets/', include('secrets.api.urls')),
|
|
url(r'^api/tenancy/', include('tenancy.api.urls')),
|
|
url(r'^api/tenancy/', include('tenancy.api.urls')),
|
|
url(r'^api/virtualization/', include('virtualization.api.urls')),
|
|
url(r'^api/virtualization/', include('virtualization.api.urls')),
|
|
- url(r'^api/docs/', swagger_view, name='api_docs'),
|
|
|
|
|
|
+ url(r'^api/docs/$', schema_view.with_ui('swagger', cache_timeout=None), name='api_docs'),
|
|
|
|
+ url(r'^api/redoc/$', schema_view.with_ui('redoc', cache_timeout=None), name='api_redocs'),
|
|
|
|
+ url(r'^api/swagger(?P<format>.json|.yaml)$', schema_view.without_ui(cache_timeout=None), name='schema_swagger'),
|
|
|
|
|
|
# Serving static media in Django to pipe it through LoginRequiredMiddleware
|
|
# Serving static media in Django to pipe it through LoginRequiredMiddleware
|
|
url(r'^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}),
|
|
url(r'^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}),
|