From 7c22eb9382a248482f8655120d217dff33215fb0 Mon Sep 17 00:00:00 2001 From: Kyle Rich Date: Wed, 20 Jul 2016 11:01:40 -0600 Subject: [PATCH] Add basic schema_view and a default url that maps to it --- rest_framework_swagger/urls.py | 8 ++++++++ rest_framework_swagger/views.py | 23 +++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 rest_framework_swagger/urls.py create mode 100644 rest_framework_swagger/views.py diff --git a/rest_framework_swagger/urls.py b/rest_framework_swagger/urls.py new file mode 100644 index 00000000..e0ae3531 --- /dev/null +++ b/rest_framework_swagger/urls.py @@ -0,0 +1,8 @@ +from django.conf.urls import url + +from rest_framework_swagger.views import schema_view + + +urlpatterns = [ + url(r'^', schema_view) +] diff --git a/rest_framework_swagger/views.py b/rest_framework_swagger/views.py new file mode 100644 index 00000000..1179dd62 --- /dev/null +++ b/rest_framework_swagger/views.py @@ -0,0 +1,23 @@ +from os.path import basename + +from django.conf import settings +from django.core.urlresolvers import resolve + +from rest_framework_swagger.renderers import OpenAPIRenderer, SwaggerUIRenderer +from rest_framework.decorators import api_view, renderer_classes +from rest_framework import response, schemas + + +@api_view() +@renderer_classes([SwaggerUIRenderer, OpenAPIRenderer]) +def schema_view(request, title=None): + if not title: + title = resolve(request.path).app_name + + if not title: + title = basename(settings.BASE_DIR) + + title = title.title() + ' API' + + generator = schemas.SchemaGenerator(title=title) + return response.Response(generator.get_schema(request=request))