Industry Level REST API using .NET 6 - Tutorial for Beginners

Sdílet
Vložit
  • čas přidán 24. 07. 2024
  • Learn to use .NET 6 to build a REST API. This is a concise, start-to-finish course that developers can use as a template to onboard/structure small to medium sized industry-level CRUD applications.
    💻 Code: github.com/amantinband/buber-...
    ✏️ Course from Amichai Mantinband. Check out his channel: / amichaimantinband
    ⭐️ Course Contents ⭐️
    ⌨️ (00:00) Introduction
    ⌨️ (03:29) Backend server architecture
    ⌨️ (11:53) Implementing logic of API model
    ⌨️ (16:40) Testing API requests
    ⌨️ (20:04) Refactoring routes
    ⌨️ (20:45) Create model for request data
    ⌨️ (28:01) Create service interface
    ⌨️ (30:47) Implement additional methods
    ⌨️ (36:54) Handling errors
    ⌨️ (41:10) Refactoring controller and services
    ⌨️ (1:00:52) Refactoring error handling
    ⌨️ (1:02:40) Testing API requests
    ⌨️ (1:05:46) Conclusion
    🎉 Thanks to our Champion and Sponsor supporters:
    👾 Raymond Odero
    👾 Agustín Kussrow
    👾 aldo ferretti
    👾 Otis Morgan
    👾 DeezMaster
    --
    Learn to code for free and get a developer job: www.freecodecamp.org
    Read hundreds of articles on programming: freecodecamp.org/news

Komentáře • 214

  • @overcadostudios
    @overcadostudios Před rokem +6

    Thank you so much. I was looking for this exact topic and now I have an API I can use for my game studio. It's not breakfasts but the concept is exactly the same. It's definitely a good amount of work to get this much done and we haven't even talked about the database part or securing the endpoints. Looking forward to that.

  • @ipoop4359
    @ipoop4359 Před 9 měsíci +24

    This tutorial is more for people who have experience in building RESTFULL applications. I used to make them in javascript and now I switched to C# so its more like a refresher for the syntax

    • @memoryleakerz
      @memoryleakerz Před 16 dny +1

      Hell yeah! same here, from TypeScript to C#, which feels a bit more natual than JS -> C#, but I cannot believe how rich the .NET Framework is!
      And how is it from the first line of code, has the feeling to that it was built for industry standards. Just a great way of building APIs

  • @csilipo
    @csilipo Před 2 lety +18

    Hi, I like the way you quickly go thru the tutorial. Some presenters spend hrs on just one concept. Tks
    Carlo

  • @kingofhiskingdom4616
    @kingofhiskingdom4616 Před 2 lety +20

    Congratulations on 6M subscribers . The family is getting bigger day after day 🌹😍😍

  • @romanemul1
    @romanemul1 Před 2 lety +77

    I think this video is only for refresher purposes. Nothing new can be learned since nothing is explained.

  • @ItsMePhoebe
    @ItsMePhoebe Před 2 lety +11

    The timing on this is perfect, thank you!

  • @LegitoTV
    @LegitoTV Před 2 lety

    Thank you for another great video, can't wait to finish it!

  • @broutality
    @broutality Před rokem +108

    Copilot is fun and all, but on a tutorial for beginners it's really annoying pausing the video all the time to go back and check what you wrote because it suggested it and you moved on :)
    Really nice tutorial!!

    • @aronreis
      @aronreis Před rokem +5

      I actually had to open his repository to know what exactly was on the screen because he doesn't use word wrap

    • @mikicerise6250
      @mikicerise6250 Před rokem +7

      Yeah. You can follow if you're just beginner with REST API stuff, not C#, but basically a lot of namespaces and boilerplate code gets generated for him very fast by his AI assistant. Personally I think it's better to write it all out yourself when you're doing katas like this. It's kind of worth it though to hear him say "yeeeessssssss" every time he approves of some AI suggestion. 😍

    • @zZzlBoredlzZz
      @zZzlBoredlzZz Před 9 měsíci +1

      You can still pause and type the block. The video would be quite a bit longer if he had to type it all out every time. It's not as bad as a time skip where suddenly there's 50 extra lines of code.

  • @amantinband
    @amantinband Před 2 lety +39

    This was a fun one to make. Really eager to hear what you think! 🤙🏼

    • @jan0195
      @jan0195 Před rokem +2

      This is the best video on the topic that I've seen.

    • @user-kj2nw6cj8q
      @user-kj2nw6cj8q Před 2 měsíci

      please, can i have the extension that open a window and you select options to generate code for Constructors,.. and other action sir? thank you

    • @user-kj2nw6cj8q
      @user-kj2nw6cj8q Před 2 měsíci

      FOund it guys. I think it is the IntelliCode hotkey that he used which is Ctrl + .

  • @sepi4
    @sepi4 Před 9 měsíci +8

    Wow that teacher is in a hurry! Would nice to see this without copilot and with more explanations.

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

    Finally a video with nice pace, and without spending too much time on explaining basic stuff.

  • @andregraes
    @andregraes Před rokem +5

    it's the first time I set the speed of the video to 75%! But it's a great content! Thank you!

  • @tgfhtgfh4309
    @tgfhtgfh4309 Před 2 lety +44

    Learning APIs from Tyson Fury himself! What a day!

  • @bijianwu5124
    @bijianwu5124 Před rokem

    simply amazing! thanks for it

  • @mariadelosangeleshernandez2698

    Thank you, it works perfect!

  • @aalbero
    @aalbero Před rokem +4

    This video was amazing, I learned so much, thank you!
    I have one question regarding the From factory methods. Are they breaking the "correct" dependency direction? where your Model only needs to know about itself?
    These seem very handy as you reuse code of creating a breakfast form a request. But now your Model needs to know about the Create and Upsert request records. And if you keep adding more types to create a breakfast from, your model needs to keep adding factory methods and have dependencies on all those external types. Could that be a problem? If so, what coudl be a solution to it?

  • @bekhzodrizayev2120
    @bekhzodrizayev2120 Před 2 lety +5

    My congratulations to 6 million subscribers. Your channel is so cool🔥❤️

  • @fieryscorpion
    @fieryscorpion Před rokem

    Amazing content. Thanks!

  • @brcdube
    @brcdube Před 2 lety +15

    .Net 6 and Spring Boot are my favourite backend frameworks

    • @fieryscorpion
      @fieryscorpion Před rokem +7

      .NET is much more enjoyable to develop with compared to Java/ Spring tbh.

  • @adelajami8731
    @adelajami8731 Před rokem +1

    Thanks a lot for the valuable information, it is really nice. i would say as i am coming from php Laravel background, Laravel is more advanced in terms of how it is ready to handle and map the request using FormRequest Class for data validation, data rules, and check user authorization, same goes for handling RestFul results, for instance, 404 error, Laravel ORM Eloquent has findOrFail() to return 404 directly. Thanks again and looking forward to a new video. Happy to do joint video to compare between asp and laravel

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

    For me MatchFirst() accepts a single error, not a List, thus not matching the Problem() arguments you have in your example. What am I missing?

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

    Thank you so much for this tutorial. It was great creating my first api and i enjoyed it alot. The way you explained was very nice and on to the point.❤

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

    Great tutorial!

  • @faris.abuali
    @faris.abuali Před 11 měsíci

    Much informative!
    Thanks

  • @Duelweb
    @Duelweb Před rokem

    Great video !! Thank you!!

  • @gabriel-torres3077
    @gabriel-torres3077 Před rokem +8

    What extensions do you use on vscode?

  • @TheStringBreaker
    @TheStringBreaker Před rokem

    *Phenomenal video!*

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

    What terminal do you use? Please share the settings for it.

  • @edjogu
    @edjogu Před rokem +4

    Maravilloso!!!! One question, in which application did you make the Backend Service Architecture diagram? Thanks :)

  • @Artemisexe-gx4rt
    @Artemisexe-gx4rt Před rokem +56

    I think it would have been helpful if he went over the extensions he had installed first, or at least listed them in the description, because his files have some code auto generated in them and it would have been helpful to be able to have a similar experience instead of cutting a pasting from the repo files each time.

    • @luanassis9842
      @luanassis9842 Před rokem +5

      Agree

    • @robertguzman6462
      @robertguzman6462 Před 8 měsíci +1

      Look for his youtube channel. He has already made a video dedicate to the extensions he uses

  • @dev0_018
    @dev0_018 Před rokem

    very well explained, thax for sharing

  • @n.o.s.e.-nostressenglish4556

    good, thanks! I need to learn REST API

  • @ToMontrond
    @ToMontrond Před rokem

    Thank you for sharing your knowledge. I have one question - why did you create a new entity (breakfast) using the PUT method?

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

    Amazing!!

  • @sandipgupta4506
    @sandipgupta4506 Před 15 dny

    I am new here ..
    And everything is just keep on going.... nothing is explained properly....
    Most useful for experienced ones.

  • @tika8134
    @tika8134 Před rokem

    33:00 I failed in upserting and deleting. I have used NoContent(), but the status is still 200 not 204. And when I get the same id, the data is still not updated. Kindly need your help. Many thanks!

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

    As an experienced TypeScript dev who needed to get up to speed on .NET, this video has been excellent. It can be really hard to find resources in between "tutorial for people who don't code" and "just read the docs lol", so I'm very appreciative!

  • @bakihz7997
    @bakihz7997 Před rokem +12

    Great video. Although I can't follow your shortcuts. Which shortcuts do you use? Can you point me to where I can learn these shortcuts? Which extension?

  • @DKHStudios
    @DKHStudios Před rokem

    What do you use for code completion?

  • @Michael-it2jz
    @Michael-it2jz Před rokem

    Can anyone help me understand the naming choice of the "requestToBreakfastResult" variable?

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

    Amazing!!!, thank a lot

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

    Industry level. Thats what i need

  • @piertFB
    @piertFB Před rokem +5

    dudes whats the name od that extension that autocomplete properties or constructors? :/
    PD.
    I like this course

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

    How do you get the PowerShell commandline to show the .NET core version?

  • @XeronosKuro
    @XeronosKuro Před rokem +1

    So I am having several issues trying to get the test ID to respond on the Upsert, Get, and Delete breakfast http pages
    It's giving me a 405 method not allowed error message after i click on Send Request.
    Am I using the wrong localport, or is there an actual setting that I've overlooked?

  • @phunguyentrong722
    @phunguyentrong722 Před 2 lety

    best, hope someday php also have industry-level tutorials like this

    • @fieryscorpion
      @fieryscorpion Před rokem

      .NET is much more enjoyable to develop with compared to PHP, Java, Python etc.

    • @name_less227
      @name_less227 Před rokem

      @@fieryscorpion .NET is a framework, not a language.

  • @rsemihkoca
    @rsemihkoca Před 7 měsíci

    24:04 how did you get that list of Unwrap arguments etc ?

  • @nesa6582
    @nesa6582 Před 9 měsíci

    So if i was doing some project following this architecture and i was to implement Ef core, i would install it in BBF.Contracts folder??????

  • @marcoitalia97
    @marcoitalia97 Před rokem

    Thanks mate. 💌

  • @StratOnFire
    @StratOnFire Před rokem

    Thanks so much!

  • @ibrahim-so4399
    @ibrahim-so4399 Před rokem +4

    Reminder for 21:52: if you create a class named :Breakfast then name the class Breakfast, this can cause compiler error. I get the error and fixed by changing the class name

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

    Awesome work !.. 🥰🥰

  • @user-ml7bl4dy2q
    @user-ml7bl4dy2q Před rokem +1

    Very good content, I have a question- why design patterns not implemented

  • @rdothl5
    @rdothl5 Před rokem

    Couldnt you just save statusCode number to Error class along with its string representation?

  • @user-ht9st4up8q
    @user-ht9st4up8q Před 3 měsíci

    I'm starting to learn C# , does anyone what is the IDE for the Models that auto fill in the getter and setter?

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

    How do you write unit test for controllers written?

  • @ildefonsocastro5219
    @ildefonsocastro5219 Před rokem +2

    Love the video i just encounter a problem, when trying 18:10 request i get "HTTP/1.1 500 Internal Server Error" why could it be?

    • @weizhao7896
      @weizhao7896 Před rokem +1

      me too, but i get an error 404...

  • @davidhoong3817
    @davidhoong3817 Před rokem +2

    what's your used extension for IntelliSens ecode completion? It is pretty cool! I want it.

  • @rohan-san8148
    @rohan-san8148 Před 10 dny

    thank you so much for this tutorial. can you make a tutorial, about how can we undo and redo the deleted and updated function in c# .net.

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

    I've just seen real software engineering bare naked.. Thanks for the efforts to make this video.

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

      Thanks, Sean 😊

    • @seanmui8772
      @seanmui8772 Před 2 lety

      @@amantinband Following you via your CZcams Channel.

  • @2005Azm
    @2005Azm Před 2 lety

    Wonderful

  • @mau9175
    @mau9175 Před rokem

    my vscode doesnt add namespaces automatically as yours. why is that? tried a lot of related stuff i found on internet and nothing worked =/

  • @NotAHomelessGamer
    @NotAHomelessGamer Před 9 měsíci +1

    What template are we suppose to use for these projects in visual studio 2022? Why are you pasting the code for the api in a tutorial video for creating an api at 6:57?

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

    Very Good Knowledge

    • @amantinband
      @amantinband Před 2 lety

      Thanks, Soham 🙏

    • @dhanviakash726
      @dhanviakash726 Před 2 lety

      Can I know from where can I learn .net for web development in vs code not visual studio, because my lapy does not support visual studio

  • @felixliles9389
    @felixliles9389 Před měsícem +1

    Well done

  • @automationguy5600
    @automationguy5600 Před rokem

    downloaded, it worked, the author ty

  • @mr.bezlimix3207
    @mr.bezlimix3207 Před 3 měsíci

    bro, u best

  • @ArmoFreekickerz
    @ArmoFreekickerz Před rokem

    which terminal is he using ?
    looks really nice

  • @lifeisbeautifu1
    @lifeisbeautifu1 Před 8 měsíci

    Amazing.

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

    I really want to follow this course but it doesn't mention the prerequisites (which every course should) so as a beginner to programming, I don't want to waste my time watching something I don't understand :)

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

      Ooh, that's great feedback. Thanks, Rayan!
      Tech prerequisites:
      C#/.NET, JSON, HTTP, client-server communication
      Software prerequistes:
      .NET 6 SDK, VSCode
      I have a tutorial for setting VSCode similar to what I have in the video: czcams.com/video/m9HvsB1-hAo/video.html

    • @bakihz7997
      @bakihz7997 Před rokem

      @@amantinband Thank you so much

  • @JuniorMayhe
    @JuniorMayhe Před 9 měsíci +4

    Thanks for sharing this. My concern here is that you have developed a tightly coupled solution heavily dependent on your ErrorOr package. If there arises a need to remove or replace this package, it could impose a substantial workload on developers. Additionally, adding this package appears to complicate the solution, making it harder to maintain. It is essential to notify viewers at the beginning of the video that the solution presented relies entirely on a third-party package. 😓😓

    • @sebastianmedina5106
      @sebastianmedina5106 Před 8 měsíci

      agree, It is sad to know that it did not conform to a standard and that we will not see a code like this outside.

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

    Totally offtopic and dont know if its already asked here
    But how do you setup the terminal like that?

  • @pritpalsingh5927
    @pritpalsingh5927 Před rokem +1

    all i will remember from this tutorial is that every time the code get suggested, he says YES!!! , but its good for beginner point of view, thanks for the video

  • @dylan-j-gerrits
    @dylan-j-gerrits Před rokem +6

    The video is good, but it lacks of explanation about why and what you are doing something.

  • @sydguitar99
    @sydguitar99 Před rokem +2

    So what program is he using when creating the project and solution?

  • @invictuz4803
    @invictuz4803 Před rokem +1

    I know it's not important but I really don't get the use case of this app. Private breakfast events?

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

    great

  • @shanthi22820
    @shanthi22820 Před 9 měsíci +1

    I am getting 404 on CreateBreakfast request, please help

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

    Well, I guess this one is more appropriated for those who are already familiar with high-typing languages like Java for example. I've been building a few RESTful apps in Java using Spring and it really shocked me how similar both syntaxes actually are.

    • @RealValkor
      @RealValkor Před 2 měsíci

      Same here, started learning java recently and it's shocking how similar it is to C# lol.

  • @keshav.mishra
    @keshav.mishra Před 2 lety +1

    Pleasure that we have freecode camp xD

  • @quachhengtony7651
    @quachhengtony7651 Před rokem +1

    Haha love the "....yes"

  • @IcedCupcakes
    @IcedCupcakes Před 8 měsíci +1

    Not for complete beginner programmers but for C# and .NET beginners with other programming experience. I have frontend experience and I'm pausing a lot to google stuff lol

  • @ajbali
    @ajbali Před rokem +1

    What code completion extension are you using? It is so cool!

  • @MrCalletennis
    @MrCalletennis Před měsícem +1

    Where is the definition of the api that just randomly gets pasted out of nowhere?

  • @Hemecan.
    @Hemecan. Před 2 lety +1

    Hello from Turkey 🇹🇷

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

    Good content

  • @mikicerise6250
    @mikicerise6250 Před rokem

    You say the sexiest "yes" I've ever heard. It's practically ASMR. 😂

  • @Spirittism
    @Spirittism Před rokem

    Why do you use Visual studio code instead of VS2022?

  • @Furki4_4
    @Furki4_4 Před rokem

    I love you freeCodeCamp, just... just wanted to say that 😊

  • @kirwakelvinkering3122
    @kirwakelvinkering3122 Před rokem +1

    Am trying to install dotnet SDK in ubuntu 22.04 and already am getting stuck 😂,

  • @adeni4359
    @adeni4359 Před 2 lety

    Can this also work on ASP.NET Core 5?

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

      There are some features that aren't available in .NET 5, but the concepts and most of the code should look the same

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

    0:50 There's 'f' missing in the header of the video

  • @abdulpianist9731
    @abdulpianist9731 Před rokem

    short and crisp

  • @bobsort
    @bobsort Před rokem +11

    With windows 95, everyone was so excited that they don't have to stare into a black screen of text and don't have to write an entire line of commands to do a simple task like openning an editor. These days, seems developers are going retro all the way, and like to type in every command to do things that you can do with just a right click or a keyboard shortcut.
    Also I wouldn't suggest surrounding blocks of code with braces unless it is really necessary, you are teaching a thing to new developers that will cause days of headache for seniors to debug.
    As for data store, when I teach juniors, I always put the data in a different class that does the crud internally (DAL concept), then call methods of that class instead to avoid distracting them from what actually are trying to learn. (your storage is inside your service code

    • @oziousmegasus9201
      @oziousmegasus9201 Před rokem +2

      personally, knowing how buttons of IDEs do the works is nessesary. Juniors then can use IDEs without questioning what lays under the hood. Furthermore, devs should know how to use terminal.

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

    Someone is displaying features of some presentation software I think. :)

  • @ofio
    @ofio Před rokem +2

    Do yourself a favor and put playback speed back to normal @ 0.75.

  • @AveN7ers
    @AveN7ers Před rokem +28

    It's a bit fast not gonna lie. I find myself pausing and rewinding every 5 seconds just to keep up. Either explain more what you're doing and why or label it as an intermediate/advanced course not a beginners course.

    • @hervinsonsamson1531
      @hervinsonsamson1531 Před rokem +1

      I agree

    • @ameykulkarni8165
      @ameykulkarni8165 Před rokem +1

      Absolutely true.

    • @christian.mar.garcia
      @christian.mar.garcia Před rokem +7

      Well, the title says industry level, so I think that is not beginner level.

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

      people will complain even if it's free.😅
      just slow down the video, take notes, research what you don't understand.
      this is how you self learn. and first of all, learn to appreciate what you get for free. 🙆🏻

    • @thewalrusdragon9579
      @thewalrusdragon9579 Před 2 měsíci

      @@AbdullahWinsit’s a fair criticism of the lesson though. You think freeCodeCamp puts all this time putting these together but don’t care about the user feedback just because they provide it for free? They still make money off of site traffic and views, so they definitely care to make sure their target audience happy with their product. If it’s not “too fast” for you then great, that’s good for you, doesn’t mean you get to be the gatekeeper of criticism on their platform.

  • @loryteck
    @loryteck Před rokem +8

    Sacrificing a lot of readability over some fancy sophisticate code, which make sense to people who use c# for a long time(maybe) but not for begginers or even intermediate developers, sometimes the best code is the way the whole team write code, not because you wrote 5 lines less is better. Just my opinion, discovered a lot of thing that I didn't know about but after all not sure I will implement them, as took me time to understand them while I want my code to be understood in 5 seconds when you read it.

    • @andtv1992
      @andtv1992 Před rokem

      Do you how to use that syntax? VSCode highlights all the code as error when I use that syntax and I haven't found a way to fix it. Am I missing any extension or something?

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

    ❤️

  • @narengbull
    @narengbull Před rokem

    which extension do you use? It's so fast I think GitHub copilot but in my VScode it does not show anything.