aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfujinhua <fu.jinhua@zte.com.cn>2018-01-22 20:02:58 +0800
committerfujinhua <fu.jinhua@zte.com.cn>2018-01-23 08:28:39 +0800
commita252316231bcf6c9f5669084a1b8e838dd46846f (patch)
tree131de17923789babfbd11ade9389281159733f2e
parent092c270a59ae407b9d815ecfc770c6075cd38a28 (diff)
Add swagger auto generate logic for vfc
Change-Id: I7e5e5a0213274aa0a052bd30efe19ccf7fe0d6f4 Issue-ID: VFC-671 Signed-off-by: fujinhua <fu.jinhua@zte.com.cn>
-rw-r--r--lcm/swagger/urls.py12
-rw-r--r--lcm/swagger/views.py9
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<format>.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<format>.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):