From 2842358aeb958d1b5d1a3d00b27274f1ce755a58 Mon Sep 17 00:00:00 2001 From: Zamil Majdy <z.majdy1996@gmail.com> Date: Fri, 17 Mar 2017 14:30:45 +0700 Subject: [PATCH] [#140382397] #7 Add so swag~ swagger plugin --- kape/settings.py | 1 + kape/urls.py | 9 +++++++-- kape/views/user.py | 10 ++++++++++ requirements.txt | 3 ++- 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/kape/settings.py b/kape/settings.py index 510448f6..9e2e86df 100644 --- a/kape/settings.py +++ b/kape/settings.py @@ -35,6 +35,7 @@ INSTALLED_APPS = [ 'core', 'rest_framework', 'django_nose', + 'rest_framework_swagger' ] MIDDLEWARE = [ diff --git a/kape/urls.py b/kape/urls.py index 600d3a4d..cfb46d1b 100644 --- a/kape/urls.py +++ b/kape/urls.py @@ -13,17 +13,22 @@ Including another URLconf 1. Import the include() function: from django.conf.urls import url, include 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) """ -from django.conf.urls import url, include +from django.conf.urls import include +from django.conf.urls import url from django.contrib import admin from rest_framework import routers +from rest_framework_swagger.views import get_swagger_view + from kape.views.user import UserViewSet +schema_view = get_swagger_view() router = routers.DefaultRouter() router.register(r'users', UserViewSet) urlpatterns = [ + url(r'^api/api-auth/', include('rest_framework.urls', namespace='rest_framework')), + url(r'^api/$', schema_view), url(r"^api/", include(router.urls)), url(r'^admin/', admin.site.urls), url(r'', include('core.urls')), - url(r'^api/api-auth/', include('rest_framework.urls', namespace='rest_framework')) ] diff --git a/kape/views/user.py b/kape/views/user.py index d8f82994..e7342905 100644 --- a/kape/views/user.py +++ b/kape/views/user.py @@ -1,5 +1,7 @@ from django.contrib.auth.models import User from rest_framework import serializers, viewsets +from rest_framework.decorators import list_route +from rest_framework.response import Response # Serializers define the API representation. @@ -13,3 +15,11 @@ class UserSerializer(serializers.HyperlinkedModelSerializer): class UserViewSet(viewsets.ModelViewSet): queryset = User.objects.all() serializer_class = UserSerializer + + @list_route(methods=['get']) + def me(self, request): + user = self.request.user + serializer = UserSerializer(user, context={"request": request}) + return Response(serializer.data) + + diff --git a/requirements.txt b/requirements.txt index aaf64df7..61e714c7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,4 +8,5 @@ pyparsing==2.1.10 six==1.10.0 gunicorn django-nose -coverage \ No newline at end of file +coverage +django-rest-swagger \ No newline at end of file -- GitLab