From 95947eef48802b21eec7b3aa2e75af0914ff3b67 Mon Sep 17 00:00:00 2001 From: FeliPython Date: Sun, 25 Aug 2024 18:45:59 -0300 Subject: [PATCH] Add bonus content and update documentation Introduced a new `bonus.md` file with additional Django Rest Framework resources and updated `index.md` with installation steps for `uv`. Modified `mkdocs.yml` to include the bonus content and changed theme colors, while also adding an image `img.png` to aid in documentation. --- docs/bonus.md | 27 +++++++++++++++++++++++ docs/img.png | Bin 0 -> 88992 bytes docs/index.md | 60 +++++++++++++++++++++++--------------------------- mkdocs.yml | 10 ++++----- 4 files changed, 59 insertions(+), 38 deletions(-) create mode 100644 docs/bonus.md create mode 100644 docs/img.png diff --git a/docs/bonus.md b/docs/bonus.md new file mode 100644 index 0000000..bc059ff --- /dev/null +++ b/docs/bonus.md @@ -0,0 +1,27 @@ + +## Bonus content + +### Serializers deep dive + +#### Types + +1. [Serializer](https://www.django-rest-framework.org/api-guide/serializers/#serializers) +2. [Model Serializer](https://www.django-rest-framework.org/api-guide/serializers/#modelserializer) +3. [Hyperlinked Model Serializer](https://www.django-rest-framework.org/api-guide/serializers/#hyperlinkedmodelserializer) + +### Serializer fields + +1. [Boolean](https://www.django-rest-framework.org/api-guide/fields/#boolean-fields) +2. [String](https://www.django-rest-framework.org/api-guide/fields/#string-fields) +3. [Numeric](https://www.django-rest-framework.org/api-guide/fields/#numeric-fields) +4. [Date and time](https://www.django-rest-framework.org/api-guide/fields/#date-and-time-fields) + +### [Serializer relations](https://www.django-rest-framework.org/api-guide/relations/) + +### [Validators](https://www.django-rest-framework.org/api-guide/validators/) + +### [Routers](https://www.django-rest-framework.org/api-guide/routers/) + +### [ViewSets](https://www.django-rest-framework.org/api-guide/viewsets/) + +### [The Browsable API](https://www.django-rest-framework.org/topics/browsable-api/) diff --git a/docs/img.png b/docs/img.png new file mode 100644 index 0000000000000000000000000000000000000000..ce39ca6d8eb87ea6fc119d1768c72ee497dc187d GIT binary patch literal 88992 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�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
    3#+4Gvo`sQwN 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ç{dXc|0IY$_kmvy*Ai-vKdHm7VQb%`zweQ z*?w;}%lyrq&Xt(yGdx0_3NBKTf*TP!Pjt?{#G5}c!0Hl!Ri9K^OKidgpED}+@k>r{ z_4flSm8&kC8yD?&Be1+CS444HNB8K(M)!Q;aK9$*rdDpA{vRpfD$$JQaYcwYAO6ug zy+b+z%{ledTsBoXsAD;AeW0aKldWzngT>yWMu=yW-+TM;Ts|>Vlp8z=zTetknrfnndVf_@EEQCd&9hzH zTdug>1sbnN^9UJKgd4Lp0Omm4cjhFWY?Bdv>T873&)$YQfB*&M56PR zt8@BV3z~Fv?iWZ(8-El51SbEh?EE;f8^SwRxtYQ%4V6M;NWtATub0$lv*l{+)W;he z6W97$L+KE1MBU1^LF{QbOckU}Ndi#lOW9$-KIcS8h_u{$cMxo0JCE-m&tp$MN2qPC z7+$FbBd@h?iA0&B|7&~b%_7J_c!aC?Q&Z_5q?9Cu!Po>x^k^+DcZyYRTQj>kTIqbp z#{)>*B{FTW z#^P@PU%6#XL+q_N8y*KlBT(T6-dJ*1u1nNwwC2UhM*i~cdT$-^%-|aPGug0q;x!gk!Tyw) z4*jL{`=g|0>KL(gqhTuU$AI8Eii8L}-}GSa3|f0m5Rw%0wxZWBFG``wlfD70Xg;yo zY=&)}a9ut=?8*eb2!wyolO5O2^PcIS+fUwa@y#{rxy=9e%LjDKqoT+|%y+ zx~^$XXD6G`fv$PgOv2JWiLC`O`kxIXyIM~DilK994v1>i;{)pz9s_4d;SRnW(u_^m zo$>yzJbz4cb>&^jbgsQ_UkH+_7uIA4g!=q@4?un6b3TM8+J&O6U)&oV;trGHnXF6! zn~^$ET#MQ7nutJBw(BU*zE-d5xk_0t`Wo-U^~OFF zr1o=z(@;t{G;V!L-(zw~`pn;wq*qHBLD=u@{XAB@|AnsaMbI1B)ouBzR{Zn5fw4T4UF9TK&xU(9?ea`t5E#$Q9GZ0BKXcEj<#j!|67do6SJ8T0-ZyP-fVFZHI> zd8znC<#|P95gfMiC5cjUx5ujU{Wjx+4ifYy6wID}ML@^IZ*M94D28r6voN<|c}+M^ z);)>C_OJdm4V*?9BUh#7f$xMEXw2;UO~~3elb9DF1URTz=Jk$Owndm<#ytgyzkt>Y z!KC3O;4s6SpL$twe!$j2O!oHK9v)cU9M!u<(MaZ2hY!t=LH#>!$p~IKCdp_z9v!YK zcW+u!>_px&uM}{aXD2jt3c8x!;uwqhzQLu^m@Od{q26L-SKjesu@K{Ee)dgiq_5*g z#_X*44(jai?%CJu7ezdOHC1T+`J@~6%ES(S9NJz{gcAIS+dEFTag!Xv9_AhEbd?ON zIa?~8x119Ad+uDW>f(rgp zFyL1_p297k-@*-5Ax(Hsi;T4E+2V5MXf_HzcgZh>Tw0hboFGtLo0jCxms?#d*8iiw!aD4_DRdlqx(1rgbf`*CAOOVUj@y{zsY6ZpmR^1Q3@$HSVpje6hQ2_5SyrS9g_ z_OZq-FF$-LRmXMGOy=U=Fgah0o1LYbxE_>~|7h#YFckmd-812b0y<<%!JocY=p{$; z!~($3CkOxNxrXcusT}u|3$<$rW!;zCs$J49Y%R_o-thB#cMSqAX!FDuYd5H5y3BL7O@Ss%^q1j$GPd6{stFOCdpNSpq6oI zCr5TqPtzEds-#5AaYa`Y{uHhxRsnu$jd&RVK|nqea(>Kh9^!TM!vNu2m!1|zm!ZeV zC)NNvrXJPe{?_j;OE~^4mVZT?IU%cKlM*H6^XA+QU;1gKj*htgL^FN(vCVR&he?u< zA-HX$X5~Yf=~KXb?05^d@>DpR*1pEokJDHCVe`A%_XzclxyK(}EK=Ctu%TeE2&TfT4P(50_mC>8mY2|D@24u#Q zI#PU8!g-g^Hk?)vY_lD%Y;(pI@J>%?&@M7)H|oi7#_QY2rt^~_;r0ohf)tI2S5aC$ zb{BsPNE;A#xK=Ko-Egx$K*~o19OjDs@_O02W-5O}S+(|+vfi^v>xXQ#Oil&?LkgkR z2B{C?3$snmTpp!*3K~7`L~&~+@Gk*CTPd302ZJg|HcK5+3fhhh0#+r+133JU4t2g? zl5&xaIGB9Y!mT}V)3MkiQ^cXtZ!&UqMvOe*w-?f)!&RnVq|eHmL;^nC`H zp<%S$zfHr1Zu&5vn6eVQNjn8(6m?^__3x(E%XeEKw_4k8qEf+cdhh0m@Ojh-e{kem zL&e?`PT)UO*N5PvTdk)W=HuIA@Y#)j>c5lpKLwkYgriSMGZHp^e_!1+X1U>DzO_H! z%&z2{p(n^#CtkPOTRtSqg^#>hw+-(%($)^(@i%`N55M7fw*ECr>>hZjUphrRZK#cu zq3)9eTh)|$wS2sPQjwW%Qtj(y1s7^rr;WvUJgli_UL~XanQ++FjKKNnm-KNW#FzNS6vNWO`xl z>YUj>@Zg_TDe*_{C>z^bd)(8M&x(pL^8ugy^RvV8i8HE5B=dr&D+s>x4Um$~c+*L0 zReo144TusE9Kgrg3H+uoT}U~f7ek!dZ$T@QhY;szp||-}&ZC1CByJ|A-!xnj3f(dT zTjd|oM{V@&fMB(S$yN2szD3+aZg{#NkDa`WQ{PY;D?)jM`j&8Uv!lm_%x%j9&bpJ_ zTgaw#5wQffq^oT2zOgN-m`hW@x{4dN6y$b0CLc*3XvVm+E#<)CpX+EV7gNV7t%S95 zd1GUp9-OU#{K1aahNXvOoM-QzJXHjfiv?LW+F$SXuJ+%ZKg~89)%x}Khd9R*uu9eB za{E}|n$0#gu-yM#@K7j`-?T|9UeT0PhXnsLXXJ3SF0tn5uc@oyL}s+LeYHgPR{k1(Q8~l=%Ic%%h7{K1(Y9A+Xz2GUs{ODH$Ce2;Sv<;?*Zw zlk|PDIs1EdrP&Warfe@WNb_a!@di~qzYg1ENyoxdjC{or&AET4w{c2>pfDq7*b*`9 z?EtOUDz~i~b_^KDd3xQA`8ZR-osLO*#n(3-i4+f5pb9MsSP_O^a0Z?33MiUK0PFXI z?d3!RG4DprBBhu&Gl?6jWgjQ@E`6vXAU2G{6F2a;9`)Mm z!j#-Ug#_-kBTs7)ihz$n1elGIRcRX2%7xIua;kT@_GPzzwL$Ekb}we@tXcu1S@{ut zoU6K$G5S^m`phDVLi@Y+Dl`hXk2y0ItPBjDT z`5*i%(dA4=q7FR;z|;JuGC+l=36={@(U=nJpz==n z@4j#O5S@lo>cqt39Cj}Ea73fa=O}k`xX$uVi<}GBnCgHxd+5u$bsrLX+eo&4D#d49 z7OX%T*p2it@V3BY3^jR(t&9)*uCD6|olPSJ!o5^~F!3H*q~u@bD*T@Qs>mO!Po<|o ztn(s}2sFJ`d8DmW0;lQogBFU3kNu1Kmlg9o1%QyP{KFhJsLay!B)59N=3v$r*Q%*< zGW6GJSnEQ0F`RETNmWy#EI`5q4x}tXlXRo3tNo{xv%!wxNDx_{uV#8Nfgn2<8 zVoY^C%e8r@iJgVS;t^U!W!m0`KX@am!WWhB=fYG;{8UEUx#Hz2^#g}z_q-R9IJ4(M#^KR2UtoRaOx(Y*1jvVQHXe0~-{t_s z2RF@ivH>hIY^T>4<+&5W(r8mU0G_rdJ?Dk@2&7P7YK^oi&h5rtvJ*_fK3OFC6Mz^A zL~b<|I#pu?f`zU7Sx3+F)qwlB>rY- zKHa7GC61j6f+_2|-4M;SxSgL9%MOg&@{cUmm)?Wi?zoPO)#<+$?0GV8+FxP3tCmlI7d)2?nze> z$9>k>!c<1Qumfgum}KoGpTAj8>F99b0~cz83>Xo=ETa>93cKkUJ4zn&+>y$nn4zlk zmxrhAocuIyaz2S0tQpb(-O}W-BBWg|ur|k8sDpRxBLE=+Iv+rY@rEUQp+0p&rl;OyiEzu_A#hM*Q~&zX!&<29K3ihPDgDKYP^!cntYYBOPj~2< zwyy35v_xlm2hhcD9E5I{^FC6BF56MgoH{N^g6ydM*3EHd0g2z&S5J2D z3TkzKyi)^s2=$|80D28wR5t<$Xv-iiSdUmwZd(FD;IzxZ^cLG}vU*Q=hCvI2R^64B zB+v7URPA+)v!zgGyNJil$8&Gii&k*Eb9UlUNu14t_?mLt88)JS`s?O6#%~wX+5e2!(~8aWMBe zW&v^bP{6uN!Wn_CJ6mb9(JVXrYS;#F;;<_L=sEF31Fv_F&)Zl~9vkIsOAqq>rl;qO z1iP5~NH2|046h$%dD#%}U4~=xcr>bX;#stp&s)eK5}O%Et|)q*PG?TUK!@Wr%T@$R zJt3M`s$MxXibr95r-p*MH zk32PS#hD5G6KP09{ryx@=`KnZZ*GwUM0Dc5@h~wa@}qVRomFhh9&JfumArNu@yhOI z&kPdm?*mf-RP_$Gr`M5S+6o5??Y9=UM-kku=frL6j@Gobjh8I(0K3uRY~V#dpamu`>NI&xMZd_z0MuIIC5x; zb*w?xnz`7%S8#fPVas^-8YT+l#VKCr;03Pf51;zh9plButf(by<(oD{c;I~I6mjwN zWUB#6scqgmba-|k7gB}ql(d)cc{MTy33jRmKSVC}SMxSw*@I>-jOMjhYu;*wlZdl- zbytkSaF`#jtof3!8F68*)&Pw|;kmP&#;1`^Lrz(VxckK>u3z~-V)tiVy7oE8ZK|KM z8PkihzF^BaIXMrIbYyjzh@T8VAKOF=+GI4Yft+lge;eiKO{qlba*Drpn=Yf>H=%*5 z9_oLL{-N{HlSN~&-6Dh z{9`^&vV^{i`-<3neQUE}@0X4aF;?aL$aI>8*Y{`xvYx)yi~#2gZf)kX<^a5x<|(En z*@ksrN5Z;LYbw?;?k`Q{us7}W{He0$W);Vy35=nn-9Lx&7p_Q}TGWunW@K&StupAt zX?v+={U3Ex;IXb<*l!)fYgngD_q`>f2B%KkepR4I% zq9EoLMo>7jCZND26So}yK3g+p;VA--VMd>*PrAv3QOAmW2!Alo z8awLfApx5bWg2yV(Tp9ay8ZidIq|oloY9InHO_qf-cvd1MqJRgKh9iT)f6U$Q#op- zW5!cNm%OR8s(EEi1P&OU{*^m5G~^iE2$hpf6V9Aumw8Mfp&oh(4PH^8zpqxfn-Mte zE*}eiY3?6$nk-`3$C(x7Q}GNHMH-|w~_ z)zf!nQV4{S$Cf)gwh_c#%y5*IqqU3jvG9nP_$p4H&ewqU4{*5S1}px?sPuxVeUy?A z5E5d=@jXynik9y64>JpjUHAQp2t+p7A=jQ*ZP+06lvQBwbk!!iFlvgHbkL_0*RTmb zAeL)O%;s#+qHVVI(JD6zbG+QtqDh$Rp-F=yV_l34rrGkZ8;mgRn)}HMXZwLu`!0X? zh|~4T@qKvVLEvvPo080umZv`|N*5p{jXf|s-|!iuL5LsInq5PB-brleAH zGV{fU^_p!IQA|4dB~!z~?KNZD>k~gA&DX5~W6%!rp{ZF-7~DXXcIcOP@w%7{AyhOvzbxDNNy| zF+U8#-b2_|?iwg=RxWO9$V)?C;Q|#-Dy1AyEI#THkv_;cqvcg>y_K<*pF>$5+Nl}Z z=s3NxB5mAJxiSm73W)AtYW@~y=@m<7S+sBJtOl9XI$f{ zsdWwN35*6E9`)3<@$VdL1j1vb{)$3aOpVkjzVh(Nvj{n&q8aP5=;D*$jvP1OnWVI_ zfEq#+y|z5$n$qI!ytYG<29g_BzkCl@52=Mj%XckBS)VTMZNv2+wlD=qYm-=`BMIz% zD0yiPQ&Pg98lC9maM+FJ?bKN1yO_A4y)IL}Hx4$Q8j3u5e)}{v#9kvh9}zyC#BQ^IJzW<2|*S^RiaE;|P6`hxDV6u88vIVdl`k zy1ZW{N2;9Mt3DL%nV-HmNVK->5|a!z?+PhS!PcL{V1tn}r>{0;FbzRlj}Tc|IDYuU z7TJ#^9mS7B;09mm%2r@{m8#YPA`M%ZV7;XR>|R5*<>qJ?Z#5K}l`+2di=)g=?j-M= z5&n66J&gHK%lZ|zDkJLve@?iXnHcyTS-u@0g-F`8gC5hvGgCi0tt+`e+%tDCyf-$F zJ&HK{w*MMV=$FyPPwoG`xT=EnnlN6|wfLST_){q-;1MDg*`~klFG*oD)nXQ+q1V#=&pW=Je5z&Ep9cgCvZbYtoNr=G?Z8i;LT%D9)ANNKW!bZMo{?fO z)qu=OI7PA0ySJY=sr_aTUa;VQ4m?@?CRvF*-^ zPvO~XH`Yw^Ozss&-=9z zTWuF4DnXdku=x?wE#_uT4)4ItTsVhY>p*~Ziien`(BWGs6ECA&k9W*GWUrMxVM><* z^Bt;b?a9@4Tp*2Pu&aaJ81M7`MV1NutjzHwm`SpLIXc4MDubUeR>kyS^x7@5kAyz~ zQ!o~6*7$x!chdf`!pBi7jIDnlhbb;fB*uPW$be$T@K;L}^PMnGIMP}1;RJyLM2L=q zteBbS+q5@Ya|5>*Yx|Z+b=gNgvfIj6U3C&+PF6yMH zZj&~Ti$ULoCij0nF;mc7`u;#Uo9${+b+6b4lQ6|JIv1>XcjI2hKWfW77F5pAKQ&O+ zl*y5L<&)rB{ITtV(GQzFAsA(&r4AQNXYKQ8nTLhzEKC$(P@j6#K?i9`mGJXS7XNm- z{E`pr4dYh+w}>jkBmn(FRX}6ic7UJ$y@zOd!Ghq_?s^%pVxcG+q6;eah$j!$hNCc!jhVH!-Fg zxm?w*2LbON47^_-K805|=>7H#+!D@UN(3{O%s9beu5@S3OR2i~La7}G*+{S>lY4`~ zV#C4dr1qJ@#!n~RjQu7b6=p1p;+pJNke=kjutcSRVB){hxW2{3-t^G`+4+Vs^SO+GZ`dIkZTF` zmGRs$iAv61TuiJdrl9B>Cn8R@G~p8C{-1PXTP6`QvFveQ58T6#dwVRFL2qBiE?)(kdx6&GP>pk{&e9Dg?9YrMOm!47J>jqYPB$nqoeP>E85Xdk%S5x~1f@JJKX|Kv{btNT%dJ#l@z%5e3h=rPZ4I zo->nT6TBK`If$HyNYq#O5gi|Yb#o@>9r_dbMX6Z&vg0DQ+uN@BX>QJg2uBvAj!3`UDv` zh;Qfb3D~8kKUZo{&o1RVpI}Io$QFP`L29Ko6fZu|Y2L|RKFo>&SeW6EiHtYpBel@N zEl@@yUS1}6&p{PU%ETQX~cj}_#MHVI6Id{lS(H~^Sb?0U3{GvS~ zM}rS?>3mGz!vHlm#CUiKuFWcaBw3fSlrSY58(u&cDM`^Ry2vj1u;V5~_&s;^0kDX$ zn^*t@A)2@xG$&}lpTz~!B1~+j50%f;~O69GG!wt#(lWaVY6Cw4zFAPN=$MwUaykYL0g_;b-XAPfoh!JOm@UI!K#) z=8*}${;2~LB-*>D3JFL5+raUP#}(` zZf$TX99Uy0EfqrFL`q`F%Xz&f!(t_$ezc6^IuHLjM`-L|1t_+9ax7OsUeQ5l5<6AU zix|eb>q~V`zalvjW3T*9PZtAXPi=Huscbgg41mIk-SURxbMf{O$m-dRZJcIl^qTPkuGgI}-H z5o_!}JU$5re<+m&5pLB@KE$~je&{LGBa`7 zX{PmmoN12@7l`TGlv$wywL=pc0hF%Q=FiCoT=ecSe^)eHh2ZBoc9gp`xNHLqCW=OH zE;`iZ?l~vktb7SF?c~IOXMtat?xNk@HlGj~FSl|9YcGTA3d9eKes3_#Yu2&{-!L0Q^rWz%dg5>TQ30yQQ-j~e?u*kr}3U}M=rO_BCC6ofM7G6 z?|*~Lxx)KG)Khwb+7t;4zz3!ZkMrkWofJpYw`n0?NP^Vecr}E{UFe|fA^IZ^V^rFz zT<9Bq0Lns!Kig!s6yJ}Bi!M~s*U5(!B{Jyjhif3Z;MDrwqMm)+?kTX)!DTshW4zKd zsblcGZ6F0T^@WTV;QZqRZU*)#k6*M~u zxpG*+TzBIEN8i+spK!}ebCE=X`yxe`E;0Ohrl`j%#r_of_-Cg_tYUD(t-5^z{UBgg zU5qG*CWDlBB|P_Y#9MxU%Vs#z;_0DRl1Fx7cIxtoxH8|SGsTkoh=<@e#;6-bLl;oL z*Rb2uhnn2c(bZb&ZseZ<4}%x>GelgXSVsvk;3hX%{2yI8Z|XB^(u~~#gXOJ0c1>ir ztBAx{z1yZdQ98F?EW~pBwIIW^Tvu`Q8x;u+`g5pAqNwBP4W5>|^6QeprsFRFy#=2p zBARRI^Pxt>6ISEpF=TY7;cx|D3GNeD4u!z{K6KFbQlsVK^-$6ip!z_v5ehjS4BLuE zGwycr=TG8>WCCs>x0$#S?7bgsw8XwPBA$*IvT7OG((J@pOI2 z;k{mIVDbt^8r~8NPRuB?t2_xANZT=|7IZQ;XKM%NxNrdS5h1plye1yq^5Xl*^=H;d zAR+qO_$|VwB*(bqVm;87Ic~`Qebkb=`J&uX_)Mk`j)%mf+ff+tAdCiY4_GHXjT~D2 zI(|Vm$D+5^gWtta&Vz$(@Z@H^`U9x^xo#z*G#9Wm@w2zmW19AFG+RD%F;vT^8Wt#p z1$FH-Y?a`>jyY^*1rql_Rd>EnqQ-KwDwYF3M+#?TD{<%J3mcXEmXfEpG zNbM++&gyzZbi5aQCpfC4e>>ca0IYEWTwJq79j}@fo#m*X$~Euk7$tWPq_D1J9A%=I zg!4PpbHe=blCj+bHSnO0zlgKkn2JPuZ*FP8h_WH^pb)+H1@3+cB3ENSKcF#8%wR~O znQDt)obMF8S=93Q*$AnF>Pa+x4!U(^z5}hWi6;-t%rgAiq6>JxO)a1$o9!@$4gJHg02(u-j;R*(oha0@^*?S$m--N(=c2ZgKfCGc^vKy| zi5O6^A19v}U?Fj`$&ojRJAoan0G)6@&yd16;PoL7$s|1f&sKm-nT$6khpluDp`{!r$CVTx+Z6zvf!Ngd7y%Z$_MpZ>YtBpuBR_ zOWkixC`S(c-V3ayX_U?hN%a1TVLO_VAEMQ#TH5sP>p5!}2bU+9H@wGB`QhcSN0ZW;{9hbMQ*A8NG3bDJ?KsyznWDr%hARFV9OdvcJ> zpJpEE>dS&7wFezrC+sh{f~_vXW2`C-Kyu68Ao9kOD_!Y)4ASd@oX(n>9~mcK^Hjg6 z`0iXGIvYDMK+d!2m-f*^R9@%WS4i3S+!8v{qV6IU3VjmoBEVykv~EfEQqWQE{^r4;Iyt(=;E)bje0*rCtUyP0K4$DpZj@UrLBTvcJATz8g*}lq5_QZ%+L0o7L-kun`@OT z*onk8k%tevJ|O|AD%}_B@>)|w8({s`Q@W1?mBv9q;>q1boB@WY=Ze)4nn%rLc@JkD z1%#aK3|NSy9jPmgoHYjh_s{$6Hkk;{g;UZ-AmnK?yt}rObZ4JK1@<*U7NuxDm>e?* zdHAwvR{=QPNz?V*R2rC3Pm2!hrtMS4zm|x&!_$4x%QnD@B-)p*Q>%)Gn|Ym#WG~z@ znqb#~idarJ;jw@8Ou47W?PcgW8^Y#Eyg5i9TAozV7+K-J5MYO7++;3Mh^zGt#vLlC zsKiSC=;mZnx9ti6G*r&tpYx0rzH^As%jP+^?s$j7%XUV3w}nOA#(qToLj+|zEj?N{ z_bawg8!tcC!xrHO%cdyS`0Mg6cT;BVt@e#M#jjc(Q=(Z}V{bS`abs*3KT5(D9!Thh zxJeInNKNWD|2dt)oVysi8gb^E=M& z{;sSqRQ-k7RhdKkAAhC$^2|K^WNJZS^x;RBZa-M3O>JDUG5PqGjNt>~jLRm0Ew+^K zBjueZ>&%j&Yk0cTiH5z3#|!eklf-^i{KmNk{X^D;%8uT*hPAPQeNMAXo3Dx@P#p5j zCCVpJ#9^UY5(GkGo*X{qOg0x5vE;1yp=bNIb?lez%4ZG z`GT>^;eS9U)K8VXr-Setk+NjX<1jWSS?+LM z`s~9hyY}h+Mv9L=X;vtH+H0GQ<%sR65*b?IT5cI;J$~WlQwnKGtKKs?5*f%PWKGFuO;tYH?x8&1RFPlu6Eq1TycA1UuyRF^@olw^1 z7w(uYzBI(6PTUxc1wZ2`&N-)0)ETd+jxI=%m z`1n*ary7?Rgh7IEH$coNb(FltGBF=SnRp%js2Z(2B)(5kop{CA$y3dGlx#xdAX^y@ z+48c)fwhdBj;hc;Opi}*`lw6YP?`1uwLN#$U^$9ZeOf7FVb!$g+cj#>i?=A^@C&HOj3y6#ae zNyjd{DW8N%OHNna+D0#z!DpKY(@Tq)pDd!i9BXET#`OXWYtp#3<%gK@D zH<-svO-SOvFCpD-lHJ1avzf$j_sLptncz-gX#vBB@HB)`#vTK_$;IK?^jX1@`i{Yj zCiV;VFIiRtk=^0(I#y8y6{ph7uv@XdEgLXrAGWlUk{PwGpf8^a^x*i*9t>Sgm0WsJ zOv%v*Tg%dDvOpk)0E=9}|wFYxm~c`h&|Brp?{xG{iniFiHE$A9}89!JJBdZJ(1(cHhe? z2TN(cCw=zJn)y`~R=CyJu?pVf1u>VncSpLqQ!p0g)R=EP*s@JeJ3*FaTgFffZ#7vY zPC0T&R8yXl5X$1-9)O^0SIXYKomZSPbgHP(Lo2yPmES@?4)ODEnh;z12rdVqExM$9 z6tSr2b_hwxmSM)1l}SNv`o3wGj@YuR`$rBI6=8E{qg&nI?#JWbRD!Qa-aed6XmNK5 zb+Id-K^~kSu7$Wv)_k}=J>#bIXR36(_<1xmfVml)LLrGW`C*A5-u%tAp=Mpj5cod& zagbzPj~mtAx|TbAT_(#k{=6=3!<}+Q%TqR+Y$|51R*@}oXmG&+MriSL&l{a-hMKNJcQ7X)MJ`^DXCW9+Q z_{>_Pf&#^X_4B#TL&jx&1!k{!tsRDa*fdX(j%>G(56UQZ7xob5&V zcsM&EErp6=n!kP559@DbdRr{#BfZe|f5vjb-PO9FWB|l(TlFr@xecTK>1JUw^g=o_TQj^<}!#_e6!O(WYZfAG_aI z28Ai$ovZSY@%%lJ59$)&>zZU8Fn_^(PFEEU(^-OOO6||DuRaV!bftON%XSnUR>Ce* z;RZ7MFSz*s{I>5&;Pw44H2VL&Ue4c>KJ$P7{co&#g24aVyY>K@_21q#EeAGE|C8f? z{~_}7vUmLJ#bo}pp8xfn>3?|c659E1dFUhq#`CYqB?#yMnD~Fqqvt<;hE@W|0Knn? z%iB8X|3B#gtg(MdP3u3GWd$I|X#el(NX$C@i|5hZ^^qBy{z<>DkM8I$W$)kVE z(f(z5JFVh>sCngcV)KQ6>1w)5?*DEU<>ID;saE9KB=Y-zxH)%(mZjbDF7f{lH$^cj z7a^_4^FK)1bIt!<@lO`fAa@R>#rQZ8)0v<>vLJvY_ODg0Rem4PyZ1_AsEz7wB48Bh zicu$P2NnNT3tHvcmkc-RxxHLj8rk$hk}VZMPyYqrpwUAc;5x@fX*+G`Qk;sd$FQC( zP2g^nwJz8EB|vM>`fM9=VrAXGU4wML;4G=a^=#u0mo8kUg1THbeg6`V&yFtA4{*C? z#H`bEH-TSVSf24@J#dB z#gXsX#qrtm3!(~uohAd2)P(skCjHAY#Xf4twH+=Wofo@yc)?0JbABF#?+BtH-PW4B Q0{mz_(pN8jXcO{(0BGsZm;e9( literal 0 HcmV?d00001 diff --git a/docs/index.md b/docs/index.md index fa41610..04b2fcd 100644 --- a/docs/index.md +++ b/docs/index.md @@ -6,9 +6,11 @@ The goal of this tutorial is for you to have Music API ready to receive songs, a Requirements list: -1. Python 3 +1. Python 3.12 2. Git +3. [uv](https://docs.astral.sh/uv/) +--- - **Total Duration:** 3 hours 30 minutes - **Lecture:** 1 hour (approximately 30%) - **Exercises:** 2 hours 30 minutes (approximately 70%) @@ -20,7 +22,7 @@ Requirements list: ## Introduction and Overview ### [Django](https://www.djangoproject.com/) -To start, we first need to understand what Django is. Django is the most popular web framework in the Python ecosystem, characterized by its high-level structure that encourages rapid development and clean, pragmatic design. It has been constructed by experienced developers and aims to mitigate the hassles of web development; this allows developers to focus their attention on writing their app without feeling the need to reinvent the wheel. Django is a free and open-source framework that is ingrained in the model-template-views architectural pattern. Its maintenance is overseen by the Django Software Foundation, an independent, non-profit organization based in the United States. +To start, we first need to understand what Django is. Django is the most popular web framework in the Python ecosystem, characterized by its high-level structure that encourages rapid development and clean, pragmatic design. It has been constructed by experienced developers and aims to mitigate the hassles of web development; this allows developers to focus their attention on writing their app without feeling the need to reinvent the wheel. Django is a free and open-source framework that is ingrained in the model-template-views architectural pattern. Its maintenance is overseen by the [Django Software Foundation](https://www.djangoproject.com/foundation/), an independent, non-profit organization based in the United States. ### [Django Rest Framework](https://www.django-rest-framework.org/) The Django Rest Framework is a powerful library constructed on top of Django, with a unique interlinking to the Django Model. This relationship endows Django with the enhanced ability to create APIs(application programming interfaces). @@ -68,11 +70,30 @@ Clone the repository: git clone git@github.com:lipemorais/building-your-first-api-with-django-and-django-rest-framework.git ``` -This will clone the repository +With the repository cloned, you need to install uv on your machine to manage the project and dependencies here: +[uv instalation instruction](https://docs.astral.sh/uv/getting-started/installation/#installing-uv) + +Now you have the project cloned and uv installed, +you need to follow these steps on create your virtualenv and install the dependencies. + +```shell +cd building-your-first-api-with-django-and-django-rest-framework +uv venv +source .venv/bin/activate # if you are on Windows use: .venv\Scripts\activate +uv sync +task run # to see the application running +``` + +You might be able to see the application running o [127.0.0.1:8000](http://127.0.0.1:8000/). + +![img.png](img.png) + + +Well done! Now you are all set! ## Creating the music Django App -Now we are going to create the Django we are going to use in this tutorial. +Now we are going to dive into the Django world, creating the Music app we are going to use in this tutorial. ```shell cd first_api @@ -211,10 +232,10 @@ def index(_request): return HttpResponse("My first API!") ``` -So no you can use the command `task r` to start our django server, so you can access http://127.0.0.1:8000/ to see it. +So no you can use the command `task r` to start our django server, so you can access [http://127.0.0.1:8000/](http://127.0.0.1:8000/) to see it. ![my_first_api.png](images/my_first_api.png) -Until here we just looked at Django stuff. Now we will dive into Django Rest Framework(DRF) stuff. +Until here we just looked at Django concepts. Now we will dive into Django Rest Framework(DRF) concepts. ## Serializers @@ -586,30 +607,3 @@ With this part done you will be able to run you application and see something li ![final-version.png](images/final-version.png) Now you api is complete! Congratulations! πŸΎπŸŽ‰πŸŽŠ - -## Bonus content - -### Serializers deep dive - -#### Types - -1. [Serializer](https://www.django-rest-framework.org/api-guide/serializers/#serializers) -2. [Model Serializer](https://www.django-rest-framework.org/api-guide/serializers/#modelserializer) -3. [Hyperlinked Model Serializer](https://www.django-rest-framework.org/api-guide/serializers/#hyperlinkedmodelserializer) - -### Serializer fields - -1. [Boolean](https://www.django-rest-framework.org/api-guide/fields/#boolean-fields) -2. [String](https://www.django-rest-framework.org/api-guide/fields/#string-fields) -3. [Numeric](https://www.django-rest-framework.org/api-guide/fields/#numeric-fields) -4. [Date and time](https://www.django-rest-framework.org/api-guide/fields/#date-and-time-fields) - -### [Serializer relations](https://www.django-rest-framework.org/api-guide/relations/) - -### [Validators](https://www.django-rest-framework.org/api-guide/validators/) - -### [Routers](https://www.django-rest-framework.org/api-guide/routers/) - -### [ViewSets](https://www.django-rest-framework.org/api-guide/viewsets/) - -### [The Browsable API](https://www.django-rest-framework.org/topics/browsable-api/) diff --git a/mkdocs.yml b/mkdocs.yml index f31a261..d6b4739 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,8 +1,8 @@ site_name: 🌐 Building Your First API with Django and Django Rest Framework nav: - Home: index.md -- Sample: sample.md - About: about.md +- Bonus Content: bonus.md theme: name: material features: @@ -21,14 +21,14 @@ theme: toggle: icon: material/weather-night name: Switch to dark mode - primary: deep purple - accent: pink + primary: light blue + accent: cyan - scheme: slate toggle: icon: material/weather-sunny name: Switch to light mode - primary: deep purple - accent: pink + primary: light blue + accent: cyan extra: social: