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

Поділитися
Вставка
  • Опубліковано 31 лип 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

КОМЕНТАРІ • 214

  • @overcadostudios
    @overcadostudios Рік тому +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 9 місяців тому +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 23 дні тому +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

  • @kingofhiskingdom4616
    @kingofhiskingdom4616 2 роки тому +20

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

  • @csilipo
    @csilipo 2 роки тому +18

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

  • @broutality
    @broutality Рік тому +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 Рік тому +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 Рік тому +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 9 місяців тому +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.

  • @sepi4
    @sepi4 9 місяців тому +8

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

  • @srdjus4064
    @srdjus4064 Місяць тому

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

  • @ItsMePhoebe
    @ItsMePhoebe 2 роки тому +11

    The timing on this is perfect, thank you!

  • @LegitoTV
    @LegitoTV 2 роки тому

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

  • @andregraes
    @andregraes Рік тому +5

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

  • @bekhzodrizayev2120
    @bekhzodrizayev2120 2 роки тому +5

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

  • @amantinband
    @amantinband 2 роки тому +39

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

    • @jan0195
      @jan0195 Рік тому +2

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

    • @user-kj2nw6cj8q
      @user-kj2nw6cj8q 2 місяці тому

      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 2 місяці тому

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

  • @romanemul1
    @romanemul1 2 роки тому +78

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

  • @DivyaGuda
    @DivyaGuda Місяць тому

    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.❤

  • @mariadelosangeleshernandez2698
    @mariadelosangeleshernandez2698 2 роки тому +1

    Thank you, it works perfect!

  • @bijianwu5124
    @bijianwu5124 Рік тому

    simply amazing! thanks for it

  • @tgfhtgfh4309
    @tgfhtgfh4309 2 роки тому +44

    Learning APIs from Tyson Fury himself! What a day!

  • @Omerfr31
    @Omerfr31 2 роки тому +2

    Great tutorial!

  • @tvanantwerp
    @tvanantwerp 2 місяці тому

    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!

  • @brcdube
    @brcdube 2 роки тому +15

    .Net 6 and Spring Boot are my favourite backend frameworks

    • @fieryscorpion
      @fieryscorpion 2 роки тому +7

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

  • @adelajami8731
    @adelajami8731 Рік тому +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

  • @fieryscorpion
    @fieryscorpion 2 роки тому

    Amazing content. Thanks!

  • @faris.abuali
    @faris.abuali 11 місяців тому

    Much informative!
    Thanks

  • @TheStringBreaker
    @TheStringBreaker Рік тому

    *Phenomenal video!*

  • @Duelweb
    @Duelweb 2 роки тому

    Great video !! Thank you!!

  • @sandipgupta4506
    @sandipgupta4506 23 дні тому

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

  • @n.o.s.e.-nostressenglish4556
    @n.o.s.e.-nostressenglish4556 2 роки тому +1

    good, thanks! I need to learn REST API

  • @CloudNey
    @CloudNey 2 роки тому +6

    Amazing!!

  • @aalbero
    @aalbero Рік тому +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?

  • @dev0_018
    @dev0_018 Рік тому

    very well explained, thax for sharing

  • @kewqie
    @kewqie 2 роки тому +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?

  • @bernardoapelt
    @bernardoapelt 6 місяців тому

    Amazing!!!, thank a lot

  • @iyviish
    @iyviish 2 роки тому +1

    Industry level. Thats what i need

  • @marcoitalia97
    @marcoitalia97 Рік тому

    Thanks mate. 💌

  • @StratOnFire
    @StratOnFire Рік тому

    Thanks so much!

  • @edjogu
    @edjogu 2 роки тому +4

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

  • @phunguyentrong722
    @phunguyentrong722 2 роки тому

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

    • @fieryscorpion
      @fieryscorpion 2 роки тому

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

    • @name_less227
      @name_less227 Рік тому

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

  • @gabriel-torres3077
    @gabriel-torres3077 Рік тому +8

    What extensions do you use on vscode?

  • @Artemisexe-gx4rt
    @Artemisexe-gx4rt Рік тому +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 Рік тому +5

      Agree

    • @robertguzman6462
      @robertguzman6462 8 місяців тому +1

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

  • @user-ml7bl4dy2q
    @user-ml7bl4dy2q Рік тому +1

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

  • @sharecodecamp
    @sharecodecamp 2 роки тому +3

    Awesome work !.. 🥰🥰

  • @bakihz7997
    @bakihz7997 Рік тому +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?

  • @ruslanlevkov7484
    @ruslanlevkov7484 2 роки тому +2

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

  • @ToMontrond
    @ToMontrond Рік тому

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

  • @automationguy5600
    @automationguy5600 Рік тому

    downloaded, it worked, the author ty

  • @2005Azm
    @2005Azm 2 роки тому

    Wonderful

  • @seanmui8772
    @seanmui8772 2 роки тому +2

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

    • @amantinband
      @amantinband 2 роки тому +2

      Thanks, Sean 😊

    • @seanmui8772
      @seanmui8772 2 роки тому

      @@amantinband Following you via your UA-cam Channel.

  • @felixliles9389
    @felixliles9389 Місяць тому +1

    Well done

  • @sohammahi7621
    @sohammahi7621 2 роки тому +6

    Very Good Knowledge

    • @amantinband
      @amantinband 2 роки тому

      Thanks, Soham 🙏

    • @dhanviakash726
      @dhanviakash726 2 роки тому

      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

  • @mr.bezlimix3207
    @mr.bezlimix3207 3 місяці тому

    bro, u best

  • @lifeisbeautifu1
    @lifeisbeautifu1 9 місяців тому

    Amazing.

  • @tika8134
    @tika8134 Рік тому

    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!

  • @itexpert4193
    @itexpert4193 2 роки тому +2

    great

  • @ibrahim-so4399
    @ibrahim-so4399 Рік тому +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

  • @Hemecan.
    @Hemecan. 2 роки тому +1

    Hello from Turkey 🇹🇷

  • @pritpalsingh5927
    @pritpalsingh5927 Рік тому +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

  • @NotAHomelessGamer
    @NotAHomelessGamer 10 місяців тому +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?

  • @Furki4_4
    @Furki4_4 Рік тому

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

  • @rohan-san8148
    @rohan-san8148 18 днів тому

    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.

  • @JuniorMayhe
    @JuniorMayhe 9 місяців тому +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 8 місяців тому

      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.

  • @dylan-j-gerrits
    @dylan-j-gerrits Рік тому +6

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

  • @dtnguyen75
    @dtnguyen75 4 місяці тому

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

  • @DKHStudios
    @DKHStudios Рік тому

    What do you use for code completion?

  • @nesa6582
    @nesa6582 9 місяців тому

    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??????

  • @mau9175
    @mau9175 Рік тому

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

  • @quachhengtony7651
    @quachhengtony7651 Рік тому +1

    Haha love the "....yes"

  • @brijeshmorya9737
    @brijeshmorya9737 2 роки тому +4

    Good content

  • @XeronosKuro
    @XeronosKuro Рік тому +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?

  • @keshav.mishra
    @keshav.mishra 2 роки тому +1

    Pleasure that we have freecode camp xD

  • @IcedCupcakes
    @IcedCupcakes 9 місяців тому +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

  • @piertFB
    @piertFB 2 роки тому +5

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

  • @rdothl5
    @rdothl5 Рік тому

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

  • @Michael-it2jz
    @Michael-it2jz Рік тому

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

  • @kopilkaiser8991
    @kopilkaiser8991 9 місяців тому +1

    I always watch teaching tutorial videos. Your programming style is polished, understandable, and you are able to explain simplifying the concepts 👌🏼

  • @shockin95
    @shockin95 4 місяці тому

    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 3 місяці тому

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

  • @rayankhan12
    @rayankhan12 2 роки тому +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 2 роки тому +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: ua-cam.com/video/m9HvsB1-hAo/v-deo.html

    • @bakihz7997
      @bakihz7997 2 роки тому

      @@amantinband Thank you so much

  • @YBXtreminal
    @YBXtreminal 2 роки тому +2

    יוחאי ימלך

  • @pranavtallewar6551
    @pranavtallewar6551 6 місяців тому

    How do you write unit test for controllers written?

  • @rsemihkoca
    @rsemihkoca 7 місяців тому

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

  • @ArmoFreekickerz
    @ArmoFreekickerz Рік тому

    which terminal is he using ?
    looks really nice

  • @loryteck
    @loryteck Рік тому +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 Рік тому

      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?

  • @thatcipher
    @thatcipher Рік тому

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

  • @user-ht9st4up8q
    @user-ht9st4up8q 4 місяці тому

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

  • @invictuz4803
    @invictuz4803 Рік тому +1

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

  • @davidhoong3817
    @davidhoong3817 2 роки тому +2

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

  • @soumadip_skyy_banerjee
    @soumadip_skyy_banerjee 2 роки тому +3

    ❤️

  • @ajbali
    @ajbali Рік тому +1

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

  • @abdulpianist9731
    @abdulpianist9731 Рік тому

    short and crisp

  • @ildefonsocastro5219
    @ildefonsocastro5219 2 роки тому +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 Рік тому +1

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

  • @mikicerise6250
    @mikicerise6250 Рік тому

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

  • @sydguitar99
    @sydguitar99 Рік тому +2

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

  • @quachhengtony7651
    @quachhengtony7651 2 роки тому +2

    .NET goated

  • @AveN7ers
    @AveN7ers Рік тому +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 Рік тому +1

      I agree

    • @ameykulkarni8165
      @ameykulkarni8165 Рік тому +1

      Absolutely true.

    • @christian.mar.garcia
      @christian.mar.garcia Рік тому +7

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

    • @AbdullahWins
      @AbdullahWins 3 місяці тому +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 2 місяці тому

      @@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.

  • @shanthi22820
    @shanthi22820 10 місяців тому +1

    I am getting 404 on CreateBreakfast request, please help

  • @bobsort
    @bobsort 2 роки тому +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 Рік тому +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 2 роки тому +4

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

  • @shoooozzzz
    @shoooozzzz 2 роки тому +3

    **intellisense makes suggestion**
    Yeeees

  • @ofio
    @ofio Рік тому +2

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

  • @mohsinafzal3852
    @mohsinafzal3852 Рік тому +1

    After watching 15 minutes i am like.. kehna kya chahte ho.. however it's a good work sir but should be more descriptive.. especially for shortcuts

  • @MrCalletennis
    @MrCalletennis Місяць тому +1

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