utilities: add converters module and use for json/yaml url

This commit is contained in:
hellerve 2019-05-26 14:44:28 +02:00
parent f9cd89a4a4
commit b114b9d396
2 changed files with 14 additions and 3 deletions

View File

@ -1,14 +1,17 @@
from django.conf import settings
from django.conf.urls import include, url
from django.urls import path
from django.conf.urls import include
from django.urls import path, register_converter
from django.views.static import serve
from drf_yasg import openapi
from drf_yasg.views import get_schema_view
from netbox.views import APIRootView, HomeView, SearchView
from users.views import LoginView, LogoutView
from utilities import converters
from .admin import admin_site
register_converter(converters.JSONOrYAMLConverter, 'json_or_yaml')
schema_view = get_schema_view(
openapi.Info(
title="NetBox API",
@ -53,7 +56,7 @@ _patterns = [
path(r'api/virtualization/', include('virtualization.api.urls')),
path(r'api/docs/', schema_view.with_ui('swagger'), name='api_docs'),
path(r'api/redoc/', schema_view.with_ui('redoc'), name='api_redocs'),
url(r'api/swagger(?P<format>.json|.yaml)', schema_view.without_ui(), name='schema_swagger'),
path(r'api/swagger<json_or_yaml:format>', schema_view.without_ui(), name='schema_swagger'),
# Serving static media in Django to pipe it through LoginRequiredMiddleware
path(r'media/<path:path>', serve, {'document_root': settings.MEDIA_ROOT}),

View File

@ -0,0 +1,8 @@
class JSONOrYAMLConverter:
regex = '.json|.yaml'
def to_python(self, value):
return value
def to_url(self, value):
return value