From 92d98a299c36324b8e0ebfcce29acaea11bdcb23 Mon Sep 17 00:00:00 2001 From: emaric Date: Tue, 16 Jan 2024 08:49:37 +0100 Subject: [PATCH] prije uspostave API documentation --- .../__pycache__/views.cpython-38.pyc | Bin 1873 -> 1899 bytes plovidba_aplikacija/views.py | 2 ++ .../__pycache__/settings.cpython-38.pyc | Bin 3239 -> 3693 bytes .../__pycache__/urls.cpython-38.pyc | Bin 1090 -> 1852 bytes plovidba_projekt/settings.py | 17 ++++++++++ plovidba_projekt/urls.py | 30 +++++++++++++++++- 6 files changed, 48 insertions(+), 1 deletion(-) diff --git a/plovidba_aplikacija/__pycache__/views.cpython-38.pyc b/plovidba_aplikacija/__pycache__/views.cpython-38.pyc index c957fc9a5fab8dea51d62a0faf948295678233d0..ab30d8acdb61c290ed18af65319f8bec27ae6051 100644 GIT binary patch delta 192 zcmcb}_nMC{l$V!_0SH1(m!@)aZRA_R#HcZOGn2AbIztps3R5tHCi5*3|D>$c?2_Qj z^wOfd{Nj>KpUmQtDAv5hs?0J!P2S0Wm{Npq2^FLkZF53VA delta 134 zcmaFOcae`Tl$V!_0SM0BU6T5Sb0gmpCPtOXo0*g+-(r&Cy2YB8Se04kr^z#kIc0JM zvm84cP$>taz~uSN;f!LFzccGHiceN$nZ~F%c@IkxqvT|HR((c|$^NXhqM|^RMPeXA e0z`0v2+7G0S!EdYHveNyV`OLL;NoECU;_Y_mLKr| diff --git a/plovidba_aplikacija/views.py b/plovidba_aplikacija/views.py index a575364..06192bd 100644 --- a/plovidba_aplikacija/views.py +++ b/plovidba_aplikacija/views.py @@ -19,6 +19,8 @@ class ObjektSigurnostiList(generics.ListCreateAPIView): queryset = ObjektSigurnosti.objects.all().order_by("naziv") serializer_class = ObjektSigurnostiSerializer pagination_class = CustomObjektSigurnostiPagination + permission_classes = [] + def get_queryset(self): user = self.request.user diff --git a/plovidba_projekt/__pycache__/settings.cpython-38.pyc b/plovidba_projekt/__pycache__/settings.cpython-38.pyc index bde7ac684c63b1098622cd1eaed5ad4f9d18793c..6296b3adbd0786ea3581b63435ccef30606dc3f1 100644 GIT binary patch delta 887 zcmZ8fT~E_c7;Z}$gE6A=IW|59Y-4N`5Wi3aO4mVUY|C0gauU)syl1t84bs*Sce4v_ zOpJ-7H(qcdT<8zr2k1}m&crJdue{JJ6TQ>3$(F%sp7ed5=Y7w4nx6N*AA#7G*V{pn zWzWCEpL;0kTa`2~4cVE}wEsJEeh@S_0;;I_hzw?6EG zp)*FO!41PO0;3RwF`YGN7(Zoo8V$k(@;)FeCE9Hgju2DSP$Au%C)1KK+amhAzHQP8SaZk1t{)$qbx;n}o zVzX#i7HPIP$!coGP@aQ=R?-jDys>X%)8Z~iE0>|TM9ogt+*NIN50{`kbA5kJH%kA* zq>Q3rXYzRq+u4Tt9mu_klHZjOll)dnQTZ)pT}&&Iz$;QFtqLh#mPHv2*8QxwliQSJ zx!LTmn@K69h&gqY7dFInLPi61Bg?Nz>82e~J5fYcmXP?xE3ap^RX!`JiHsmS^X)I` z*^3YDH|bu~l@nz}P3HJbaXXXSF#RN~^Ql904U@tgar~ZrmryMQ=ar{Ge{}wMCfjI+ fW`42VPN;LI`xf(;VF_B;s`}gI?Pzt5J171D16>Cx delta 429 zcmYk2Jx>Bb5QcA$^B~9(6$OCC3n+Rh)~97f`7X7fJp&TeM*%Y2AC2Zj+;C|-BF;&x0?K0Wv!-sukI>GQQC z&)p!8B7$*DAc`0!5qJGOh6JBPQutdVcX6S^?5Zw904b!A!4#%lt;sNRqq&SHkmX5O zu#rQaRsluK-snxnO*kTq63QL5$%F|juAov=;9!n!JD8{a+`&R0s!ir}W+$HJo899C+Iu!+xv-RD)}zfsn@D$iq` z7k-^8O}9Z-5u1E=P*fww8PFC{3ER93-@a0;_eRuvl|_2*+Px;fgc5cN8a?R+>+`jMoxg$TqUQk#eq*H-PJl`4u95MqU7x!z6cu(qS!O`}>! zIrJO}6#fDSj@&tM<`?+NpFpSx#%^efU{}`8ym>RTZ+HF0{9M_3ZdpYI#*c>|=qp1} zzNOCXQ2=KLKG8()wl=0nA&6)!ALv*Q3~Xe6o|!=b7cyIC#h`>snQgFgU}5VY++>x& z#x_!@MN7jfDUc#5fmI`AV$Be#%rs(Cd$=?}q&mytWvY`J)rKp>>FR|F&Js1q@&(H5 z6}mjElU3MOeWsEIY0h%MSj*5m3v@k22O4frb=Z81_zGGvgJ}<_bcA(wCi1NS}!jD1` zo4ZdBTO{%XR?i;Ao4tuU7*L)et$xH?N4}6p?ulptFK$u>bvuE}eQ$?Bgh8YeQVCV_ z(7|VI?I_7hUowhqLi_HRN#~66v{zChRCwGUNpP^?MWJ*(`K+xb`e=N@d=D?(Y|QbP zD+HZ)bM0wtimP39v9YkApXIrr%8`CRqp^%@R~ok$gza%EUJKoT#yY1Uu#5BA8kZN$ zE3XE})J^qw|1^p1Ybc|&?LO?oV#Mc;nk-F7H%iKGQrK1Q{hxdr_VvsB;v1m`Y$Bf zVc3tbv3GTt*xY3-n(T(>I2CdG-V;suk|tW(9vc&1o;qVcDUI)QHgct;JQRu5J2-yf zz(qUz$9uhx3SWm7e0}~k*FV??Q>&Iy8C6kPO;?yX6=_J#X7N(fRiuB{%W0&J>X({f PLPSGlMg66zi}mMk(yAd1 delta 267 zcmdnPcZfqLl$V!_0SL^_&QEP%W?*;>;vfT7AjbiSi+va->d2VnvPQ8oGNdr3u;j4i zvPZEqGNiJku%FrQ_$a=Vti-(Ze7)rSypp2Kq#`DuO}DtAf~7?{#YI3jF%+?YgoO)o z^2;()k`m(+3vx2E6O%Ku5{p32yTwwRS(18-1*HBKH;^nyEGbDX$}3*UP{ae$4kCU9 eIa|eq7N<_0$rddD5?~SFVH9BGVdi1v`3C^^`$M7t diff --git a/plovidba_projekt/settings.py b/plovidba_projekt/settings.py index adf68ff..f580181 100644 --- a/plovidba_projekt/settings.py +++ b/plovidba_projekt/settings.py @@ -49,6 +49,8 @@ INSTALLED_APPS = [ 'django_extensions', # 3rd party 'rest_framework', + 'drf_yasg', + 'rest_framework_swagger', # Custom apps: 'plovidba_aplikacija', @@ -122,6 +124,21 @@ AUTH_PASSWORD_VALIDATORS = [ }, ] +# Define DRF settings +REST_FRAMEWORK = { + "DEFAULT_AUTHENTICATION_CLASSES": [ + "rest_framework_simplejwt.authentication.JWTAuthentication", + ], + "DEFAULT_PERMISSION_CLASSES": [ + "rest_framework.permissions.IsAuthenticated", + ], + "DEFAULT_FILTER_BACKENDS": ["django_filters.rest_framework.DjangoFilterBackend"], + "DEFAULT_PAGINATION_CLASS": "rest_framework.pagination.LimitOffsetPagination", + "PAGE_SIZE": 100, +} + +# API docs +SHOW_API_DOCS = ENV_BOOL("SHOW_API_DOCS", True) # Internationalization # https://docs.djangoproject.com/en/4.2/topics/i18n/ diff --git a/plovidba_projekt/urls.py b/plovidba_projekt/urls.py index fd56703..00ca650 100644 --- a/plovidba_projekt/urls.py +++ b/plovidba_projekt/urls.py @@ -14,11 +14,39 @@ Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ +from django.conf import settings from django.contrib import admin from django.urls import path, include from plovidba_aplikacija import views +from drf_yasg import openapi +from drf_yasg.views import get_schema_view +from drf_yasg import openapi +from rest_framework import permissions + + +api_schema_view = get_schema_view( + openapi.Info( + title="API docs", + default_version='v1', + description="Swagger docs for ListLabs API", + contact=openapi.Contact(email="elena.maric@listlabs.net") + ), + public=True, + permission_classes=[permissions.AllowAny], +) + urlpatterns = [ path('admin/', admin.site.urls), path('api/', include('plovidba_aplikacija.urls')), -] \ No newline at end of file + path("swagger/", api_schema_view.with_ui("swagger", cache_timeout=0), name="schema-swagger-ui"), + path("redoc/", api_schema_view.with_ui("redoc", cache_timeout=0), name="schema-redoc"), +] + +if settings.SHOW_API_DOCS: + urlpatterns += [ + path('api/docs/swagger/', + api_schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'), + path('api/docs/redoc/', + api_schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc-ui') + ] \ No newline at end of file