From a252316231bcf6c9f5669084a1b8e838dd46846f Mon Sep 17 00:00:00 2001 From: fujinhua Date: Mon, 22 Jan 2018 20:02:58 +0800 Subject: [PATCH] Add swagger auto generate logic for vfc Change-Id: I7e5e5a0213274aa0a052bd30efe19ccf7fe0d6f4 Issue-ID: VFC-671 Signed-off-by: fujinhua --- lcm/swagger/urls.py | 12 ++++++++---- lcm/swagger/views.py | 9 +++++++++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/lcm/swagger/urls.py b/lcm/swagger/urls.py index 0fe8269f..cb10cad6 100644 --- a/lcm/swagger/urls.py +++ b/lcm/swagger/urls.py @@ -12,12 +12,16 @@ # See the License for the specific language governing permissions and # limitations under the License. from django.conf.urls import url -from rest_framework.urlpatterns import format_suffix_patterns +from lcm.swagger.views import SchemaView from lcm.swagger.views import SwaggerJsonView urlpatterns = [ - url(r'^api/nslcm/v1/swagger.json$', SwaggerJsonView.as_view()) + url(r'^api/nslcm/v1/swagger.json$', SwaggerJsonView.as_view()), + url(r'^swagger(?P.json|.yaml)$', SchemaView.without_ui(cache_timeout=0), name='schema-json'), + url(r'^swagger/$', SchemaView.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'), + url(r'^redoc/$', SchemaView.with_ui('redoc', cache_timeout=0), name='schema-redoc'), + url(r'^cached/swagger(?P.json|.yaml)$', SchemaView.without_ui(cache_timeout=None), name='cschema-json'), + url(r'^cached/swagger/$', SchemaView.with_ui('swagger', cache_timeout=None), name='cschema-swagger-ui'), + url(r'^cached/redoc/$', SchemaView.with_ui('redoc', cache_timeout=None), name='cschema-redoc'), ] - -urlpatterns = format_suffix_patterns(urlpatterns) diff --git a/lcm/swagger/views.py b/lcm/swagger/views.py index e78ecead..5f087f8c 100644 --- a/lcm/swagger/views.py +++ b/lcm/swagger/views.py @@ -17,10 +17,19 @@ import os from rest_framework.response import Response from rest_framework.views import APIView +from rest_framework import permissions +from drf_yasg.views import get_schema_view logger = logging.getLogger(__name__) +SchemaView = get_schema_view( + validators=['ssv', 'flex'], + public=True, + permission_classes=(permissions.AllowAny,), +) + + class SwaggerJsonView(APIView): def get(self, request): -- 2.16.6