Python FAST API Tutorial

Sdílet
Vložit
  • čas přidán 2. 06. 2024
  • Welcome back to my channel! In this video, I will be showing you FastAPI which is a Python framework. As the name suggests, this allows us to make APIs in Python.
    💻 Checkout Intel's OpenVINO toolkit for FREE and start building and deploying AI/ML applications with the DevCloud for the edge! intel.ly/3whdRWo #sponsored
    📄 Resources 📄
    FAST-API Docs: fastapi.tiangolo.com/
    Fix Pip (Windows): • How to Install Pygame ...
    Fix Pip (Mac/Linux): • How to Install Pygame ...
    ⭐️ Timestamps ⭐️
    00:00 | Introduction
    02:22 | FAST-API Advantages
    04:49 | Installing FastAPI
    06:26 | Writing Our First FAST-API API
    10:58 | Running Our API
    14:00 | What is an API
    16:35 | JSON Explanation
    18:16 | Creating More Endpoints & GET Method
    19:19 | Path/Endpoint Parameters
    27:19 | Query Parameters
    35:19 | Request Body & POST Method
    44:12 | PUT Method
    50:42 | Delete Method
    53:15 | Status Codes and Error Responses
    ◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️
    💰 Courses & Merch 💰
    💻 The Fundamentals of Programming w/ Python: tech-with-tim.teachable.com/p...
    👕 Merchandise: teespring.com/stores/tech-wit...
    🔗 Social Medias 🔗
    📸 Instagram: / tech_with_tim
    📱 Twitter: / techwithtimm
    ⭐ Discord: / discord
    📝 LinkedIn: / tim-ruscica-82631b179
    🌎 Website: techwithtim.net
    📂 GitHub: github.com/techwithtim
    🔊 Podcast: anchor.fm/tech-with-tim
    🎬 My CZcams Gear 🎬
    🎥 Main Camera (EOS Canon 90D): amzn.to/3cY23y9
    🎥 Secondary Camera (Panasonic Lumix G7): amzn.to/3fl2iEV
    📹 Main Lens (EFS 24mm f/2.8): amzn.to/2Yuol5r
    🕹 Tripod: amzn.to/3hpSprv
    🎤 Main Microphone (Rode NT1): amzn.to/2HrZxXc
    🎤 Secondary Microphone (Synco Wireless Lapel System): amzn.to/3e07Swl
    🎤 Third Microphone (Rode NTG4+): amzn.to/3oi0v8Z
    ☀️ Lights: amzn.to/2ApeiXr
    ⌨ Keyboard (Daskeyboard 4Q): amzn.to/2YpN5vm
    🖱 Mouse (Logitech MX Master): amzn.to/2HsmRDN
    📸 Webcam (Logitech 1080p Pro): amzn.to/2B2IXcQ
    📢 Speaker (Beats Pill): amzn.to/2XYc5ef
    🎧 Headphones (Bose Quiet Comfort 35): amzn.to/2MWbl3e
    🌞 Lamp (BenQ E-reading Lamp): amzn.to/3e0UCr8
    🌞 Secondary Lamp (BenQ Screenbar Plus): amzn.to/30Dtafi
    💻 Monitor (BenQ EX2780Q): amzn.to/2HsmUPZ
    💻 Monitor (LG Ultrawide 34WN750): amzn.to/3dSD7tS
    🎙 Mic Boom Arm (Rode PSA 1): amzn.to/30EZw9m
    🎚 Audio Interface (Focusrite Scarlet 4i4): amzn.to/2TjXsih
    💸 Donations 💸
    💵 One-Time Donations: www.paypal.com/donate?hosted_...
    💰 Patreon: / techwithtim
    ◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️
    ⭐️ Tags ⭐️
    -Tech With Tim
    - Fast API
    - Fast API Tutorial
    - Python API
    - Python FastAPI Tutorial
    ⭐️ Hashtags ⭐️
    #TechWithTiim #FastAPITutorial

Komentáře • 260

  • @worzell5169
    @worzell5169 Před rokem +62

    43:49 for anyone wondering, he changed the function parameters to be def get_item(name: str = Query(None, title="Name", description="Name of item.", max_length=10, min_length=2)):

  • @s4lm._179
    @s4lm._179 Před 3 lety +157

    Just when i thought of learning about API, there comes Tim

  • @thegimel
    @thegimel Před 3 lety +21

    Great video Tim!
    Would love to see a follow-up video where you show how to build a web micro-service (using FastAPI) for machine learning model inference

  • @kenny-kvibe
    @kenny-kvibe Před 3 lety +7

    This was epic, I was watching for 3 hours straight, and I've implemented a chilld class of FastAPI with a function that saves data into file.json when requests succeed.
    Great module I love it ! & great video, thank you very much! All that is missing is the cors, xss security things, let the research continue :D

  • @Musava
    @Musava Před 3 lety +3

    Even though i know most basic and intermediate stuff, i still watch every single second of this video to not miss any information

  • @user-ke4yx6uw1r
    @user-ke4yx6uw1r Před 3 lety +2

    I have been working with Django and thinking about to give a try with fast api and flask.
    And here comes Tim with a fast api tutorial, Thank you Tim

  • @SeattleDataGuy
    @SeattleDataGuy Před 3 lety +6

    I have been looking to get into FastAPI and compare it to Flask(which is what I usually use for a lot of dev). This was a great in depth intro and more! Thank you.

  • @bh3553
    @bh3553 Před 3 lety +77

    Somewhere around 25 minutes, your face cam is over the relevant code. Still very informative

    • @arunavamaulik19
      @arunavamaulik19 Před 2 lety +2

      @Josh Yorko This comment needs to be pinned!

    • @JeffreyWagner7
      @JeffreyWagner7 Před 4 měsíci

      Better to just get rid of the face cam anyhow. Why do we need to see anyone's face between intro and outro?

    • @Studywise_io
      @Studywise_io Před měsícem

      def get_item(item_id: int = Path(description="the id of the item you want to view", gt=0) ):
      return inventory[item_id]

  • @zarrycherry
    @zarrycherry Před 2 lety +91

    Great to follow except for the part where you have your face cam over the code your write. Also when you transition from query parameters to the next topic your code for get_item is different and as we follow along we still have our required fields when trying to get an item after our 2 items added through post, the get_item method you used simply asks for the item name.

    • @neclis7777
      @neclis7777 Před 2 lety +4

      Yes, this exactly :). The video is great, but as you underline in the conclusion of the video, the important part is the difference between Path & Query which you seem to have cut in your video ! THank you for all your content Tim, keep it up !

    • @lifebelowyourmeans5454
      @lifebelowyourmeans5454 Před 2 lety +2

      ya had the same problem. got kinda stuck lol.

    • @mawe4585
      @mawe4585 Před 2 lety +8

      Mee too! Great video but this part around 26:00 is impossible to follow.

    • @dawit100100
      @dawit100100 Před 2 lety +46

      here is the part of the code which is not visible on part around 26:00
      def get_item(item_id: int = Path(None, description="The Id of the item you'd like to view", gt=0, lt=2)):

  • @pauldickman4379
    @pauldickman4379 Před 11 měsíci

    The asterisk part just cracks me up. One of those things. Super great tutorial btw, thank you for taking so much time to make it high quality. Still holds up well 2 years later and that is hard to do nowadays.

  • @martinag6607
    @martinag6607 Před 2 lety +6

    I finally understand API and all thanks to you, Tim, thank you so so much for making these! Super grateful for your sharing of knowledge!! Thanks and stay so cool :)

  • @richisgood22
    @richisgood22 Před rokem +1

    I wish I could upvote you more! Thank you so much for all of the help you've provided me over the years. You're amazing!

  • @ajiteshkumar
    @ajiteshkumar Před 3 lety +5

    Tim is always here the same second i want to learn something. Thank you!

  • @joddden
    @joddden Před 2 lety

    I absolutely love you man, my genius hero! You coincidentally have videos on things I need for work AND things I'm just interested in that I thought was way too specific to me, like the NEAT series.

  • @pinakastra
    @pinakastra Před 3 lety +3

    Just what I wanted to learn and that too in short n crisp (also enough detailed to get started). Thanks

  • @kemalcihanbastak8476
    @kemalcihanbastak8476 Před 3 lety +32

    Hey Tim could you make tutorials about advanced topics like Kafka and Elasticsearch with Python.
    Btw great explanation.

  • @binaprajapati3593
    @binaprajapati3593 Před 3 lety +12

    I am not first.
    I am not last.
    But when Tim uploads, I click fast
    😎😎

  • @nomoremuda
    @nomoremuda Před 3 lety

    This is fantastic, Tim, I needed this for my current projects

  • @thehandydandy
    @thehandydandy Před 3 lety +8

    Please do some more fastapi videos, the library is still new and there isn't much tutorials out there. Great thing is that the documenting is really good.

  • @tomdanielsofficial
    @tomdanielsofficial Před 2 lety

    Thank you so much for this great video! It helped me finish my homework for python class which would have been due tomorrow :)

  • @Sciencedoneright
    @Sciencedoneright Před 3 lety +14

    Dude. You're reading our minds. I was just thinking about learning FastAPI and, you made this video!!!

    • @aakashjana6225
      @aakashjana6225 Před 3 lety +2

      we only think of what they feed to us. not a big surprise nowadays anymore

    • @sineadward5225
      @sineadward5225 Před rokem

      @@aakashjana6225 What technologies are you working with/do you enjoy working with?

    • @aakashjana6225
      @aakashjana6225 Před rokem

      @@sineadward5225 interestingly these days I am working with system verilog ( hardware description language) to work with FPGAs. Should take a look at it, it's very interesting fir chip design.

  • @sovietcat4825
    @sovietcat4825 Před 3 lety +8

    great vid i didn't know you can do this until now... very infomative

  • @sanjeevKumar-eg6hp
    @sanjeevKumar-eg6hp Před rokem

    Thanks for precise and to the point explanation of FAST-API. It was nice leaning at this pace

  • @Nick-kd9no
    @Nick-kd9no Před 2 lety

    best short intro to FastAPI. Thank you Tim

  • @gecsus
    @gecsus Před 2 lety +9

    Tim, at time 26:00 you are adding things we can't see for Greater than >. Your popover window either covered it or you were showing the wrong part of the screen. So we are unable to type what you typed.
    Generally, your videos are really good, so please review them carefully.

    • @ignabelitzky
      @ignabelitzky Před rokem +5

      def get_item(item_id: int = Path(None, description = "The ID of the item you'd like to view.", le=1)):

  • @michakacprzak8984
    @michakacprzak8984 Před 3 lety +1

    Really nice introduction to FAST API, thanks Tim

  • @parameshkumar6580
    @parameshkumar6580 Před 5 měsíci

    Thank You Tim ,Great video I like the way how you used dictionary first then introduced classes

  • @Meenimie
    @Meenimie Před 11 měsíci

    Tim, you're the best at what you do.
    Please, keep it up because we need you.

  • @rasheedibraheem6839
    @rasheedibraheem6839 Před rokem

    A great tutorial! Very helpful, many thanks Tim

  • @k2theboss47
    @k2theboss47 Před 3 lety +1

    Thanks Tim, this is insanely valuable!!!

  • @procode6881
    @procode6881 Před 3 lety +5

    Was waiting waiting for this ...first one to get it!

  • @emailvinz
    @emailvinz Před rokem

    Great tuto as usual, thanks Tim !

  • @EnglishRain
    @EnglishRain Před rokem +1

    Thanks a TON for Zooming in!

  • @KAREKINFPV
    @KAREKINFPV Před rokem

    This is incredible! Thank you so much!

  • @NMNaufaldo
    @NMNaufaldo Před 2 lety

    Waw I was just amazed how fast & easy to build an API with this framework 🚀

  • @Betty-dc9ky
    @Betty-dc9ky Před rokem

    Thank you Tim for this tutorial. Found it really useful.

  • @iscodav
    @iscodav Před 2 lety

    Thank you very much. That was a great experience to get to start with FastAPI

  • @alexnefayne4266
    @alexnefayne4266 Před rokem

    Thanks Tim another great tutorial i find these so usefull

  • @samozturk8276
    @samozturk8276 Před 2 lety +12

    @50:51 Tim forgot to type "from fastapi import Query" on top of the code.

  • @milesmatic2872
    @milesmatic2872 Před 3 lety

    Awesome tutorial, very helpful!

  • @mysneekers5862
    @mysneekers5862 Před 3 lety

    This guy is great! Thanks for your tutorials.

  • @samozturk8276
    @samozturk8276 Před 2 lety +10

    Hello Tim, nice tutorial. But at some parts, I couldn't see the code because of the portrait :D Are there any repo for this or something like that?

  • @whichdude420
    @whichdude420 Před 3 lety +2

    Glad more people are trying out FastAPI ^^

  • @yassinebenazzouz7170
    @yassinebenazzouz7170 Před rokem

    just watched your flask restful api and this one, perfect !

  • @nigeldavis
    @nigeldavis Před 3 lety

    i just started a job where im going to be using FastAPI this is perfect!

  • @emilijamarjanovic5497
    @emilijamarjanovic5497 Před 2 lety

    Great tutorial, thank you very much!

  • @romanviktordvorak76
    @romanviktordvorak76 Před rokem

    Great introduction to FastAPI. Thank You!

  • @hackynawhat
    @hackynawhat Před 3 lety

    This was what I actually needed 😊😊😊

  • @The1neo34
    @The1neo34 Před rokem

    Thank you! Best video on APIs I have watched to date

  • @efajunk
    @efajunk Před rokem

    Thank you very much. Absolutely useful info about this framework!

  • @arrvind7385
    @arrvind7385 Před 2 lety

    Tons of thanks , Really Superb explanation

  • @rembautimes8808
    @rembautimes8808 Před 2 lety +2

    Bye bye Django. Thanks for this excellent tutorial. Exactly what I was looking for and the automated documentation is a big win. Did the trifecta- liked , subscribed and comment ( From Singapore)

  • @uptightowl3801
    @uptightowl3801 Před 3 lety +3

    TIM PLEASE be my dad 😩😩😩 these tutorials are amazing. I haven’t watched it yet but I saw the channel and clicked

  • @emmanouilmorfiadakis118

    Very Good Explanation.Thank you

  • @arturmostowiak9427
    @arturmostowiak9427 Před 2 lety +3

    The PUT method is not necessarily a method that updates something. For this you have PATCH method. PUT is in short : create a resource or update it if it exists.

  • @Robizd1
    @Robizd1 Před 2 lety +21

    You could have used PATCH method instead of PUT method for updating items. PATCH allows you to partially update item. Btw nice video

    • @yessirski7868
      @yessirski7868 Před 4 měsíci

      do they work the same in terms of the perameters?

  • @malachimathins9390
    @malachimathins9390 Před 6 měsíci

    Great Video Tim
    "Hey everyone! I just wanted to share my experience with different code editors. I've tried various IDEs, including VS Code and Visual Studio,
    and I ran into some issues that were frustrating to deal with. so its best to use sublime text like in the video

  • @EpicGamer-ux1tu
    @EpicGamer-ux1tu Před rokem

    Great vid Tim! Thanks.

  • @Elekks
    @Elekks Před rokem +3

    Consider maybe moving you're camera to the top right of the screen. Around 26:27ish you were blocking the syntax for less than and greater than operators. Not a huge deal but could make the video easier to follow.

  • @gnvageesh6467
    @gnvageesh6467 Před 3 lety +23

    That's cool and easy for those who have experience with Flask... Could make a tutorial on Python and Firebase like a backend tutorial

  • @GreenfieldOTTYS14
    @GreenfieldOTTYS14 Před 2 lety

    amazing, thank you so much!

  • @saloniparekh3999
    @saloniparekh3999 Před 3 lety +2

    wow this was really great, can you also post videos for DS and Algos to prepare for job interviews.

  • @markruiz9397
    @markruiz9397 Před 2 lety +1

    Please keep the FastAPI material coming!!!

  • @shnuiiwithdoublei
    @shnuiiwithdoublei Před 3 měsíci +1

    Such an underrated video

  • @gustavojuantorena
    @gustavojuantorena Před 3 lety

    Great content ! Thank you

  • @sanduchicu7545
    @sanduchicu7545 Před 3 lety

    Very helpful thx a lot. gl with ur channel in the future ;)

  • @noobypro4560
    @noobypro4560 Před 3 lety

    Thanks tim for providing this usefull contents

  • @riperboyxl3216
    @riperboyxl3216 Před rokem

    dude this tutorial is GREAT

  • @JohanMonard
    @JohanMonard Před 2 lety

    Great tutorial, could you add a section showing how to secure API access with user login/pwd?

  • @Latif127
    @Latif127 Před 6 měsíci

    It is a nice tutorial. Thank you

  • @evanshlom1
    @evanshlom1 Před 2 lety

    This is a great intro to fastapi

  • @rahulkmail
    @rahulkmail Před 3 lety

    Excellent tutorial

  • @gustavo8433
    @gustavo8433 Před 2 lety

    Thanks for the tutorial !! I need to put some dash/ plotly elements into my API. is it possible ? how could this be done ?

  • @shashankm4363
    @shashankm4363 Před 3 lety

    YES... New video from tim!!!!!!

  • @xXJM01Xx
    @xXJM01Xx Před rokem

    Great video, I knew this was a great library that I should learn and the video did a very good job of getting my feet wet.

  • @leonWischmeyer
    @leonWischmeyer Před 2 lety

    Pls make your cam in the top right corner and make it a bit smaler. The tutorial is very nice. When you have experience with flask fastapi is very easy to learn.

  • @abdallahkharoby4180
    @abdallahkharoby4180 Před 2 lety

    Your are really awesome thank you very much, hope you make one day a video about scrapy library so that we can scrap an api from any website we want.

  • @jeroenvermunt3372
    @jeroenvermunt3372 Před 2 lety +1

    Could you do a quick little tutorial on how to connect this with a persistent database

  • @sakethgupta2885
    @sakethgupta2885 Před 3 lety

    Make a tutorial on media pipe which helps us a lot in object recognition, and boosts the capability of opencv

  • @wakweikafelix
    @wakweikafelix Před rokem

    Thank you for sharing!

  • @ChrisHalden007
    @ChrisHalden007 Před 2 lety

    Great video. Thanks

  • @drewprof
    @drewprof Před 2 lety

    Good vid Tim!

  • @matthewrenegar6559
    @matthewrenegar6559 Před rokem +2

    51:04 this line of code will not run because of the "Query"
    def delete_item(item_id: int = Query(..., description="The ID of the item to be deleted"), gt=0):
    At 54:00 he scrolls up and you see this at the very top of the screen.
    from fastapi import FastAPI, Path, Query

  • @islamh6042
    @islamh6042 Před 11 měsíci

    Thanks Tim!

  • @AtulKumar-zu5hx
    @AtulKumar-zu5hx Před rokem

    great explanation

  • @lucastavares7767
    @lucastavares7767 Před 2 lety

    Very Good, from Brazil 🇧🇷😃👍

  • @user-re1vj1jx4r
    @user-re1vj1jx4r Před rokem

    Great one!

  • @iho2437
    @iho2437 Před 2 lety

    Based Tim with the API knowledge.

  • @gianniprocida3332
    @gianniprocida3332 Před 2 lety

    Excellent!

  • @amans6504
    @amans6504 Před 2 lety

    hey tim, suppose if i wanna set the name to lowercase, i can do **if inventory[item_id]['name'] == name.lower():** but it doesn't work if i do not provide the query parameter, it gives an error like, "'NoneType' object has no attribute 'lower' ", how do i fix this?

  • @hakim6801
    @hakim6801 Před 2 lety

    Great Job ..... Thanks

  • @ashraf736
    @ashraf736 Před 2 lety

    Nice explanation

  • @anshuman4mrkl
    @anshuman4mrkl Před 3 lety

    Clearly explained

  • @opcon3155
    @opcon3155 Před 2 lety +3

    Just so you know, Django rest framework also has very strict validation capabilities

  • @GelsYT
    @GelsYT Před rokem

    THANK YOU!!!

  • @Mr_Spock512
    @Mr_Spock512 Před 3 lety

    Excellent content as always!

  • @oliverchen2614
    @oliverchen2614 Před rokem +1

    Hello, when I add default value "None" to Path method, the prompt said: AssertionError: Path parameters cannot have a default value

  • @aleksanderdeda204
    @aleksanderdeda204 Před 2 lety

    Hey ! I wanted to know how to permanently save datas and retrieve them whenever i want and not to create or recreate them when i re-execute the program. For example connecting with a database or something like that.

  • @johnnyt.2523
    @johnnyt.2523 Před 3 lety +1

    Outrageous! xD

  • @umynchannel7528
    @umynchannel7528 Před 2 lety

    thank's for providing a lot of information to us, but can you make a video on django rest api.